111. Minimum Depth of Binary Tree

Given a binary tree, find its minimum depth.

The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

注意题目的描述是从该节点到叶子结点。所以递归的终结条件应该从null 变成isleaf的判断。在leaf节点返回1,同时为了避免null的干扰 我们不该调用null节点。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public int minDepth(TreeNode root) {
        if(root==null)
            return 0;
       return depth(root);
    }
    private int depth (TreeNode root)
    {
       if(root.left==null&&root.right==null)
           return 1;
       else if (root.left==null)
       {
           return depth(root.right)+1;
       }
        else if( root.right==null)
        {
            return depth(root.left)+1;
        }
        else
        {
            int left = depth(root.left);
            int right= depth(root.right);
            return left<right?left+1:right+1;
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容