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;
}
}
}