您的位置:首页 > 其它

leetcode第1题(minimum-depth-of-binary-tree)

2018-01-12 15:01 417 查看
题目: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.

思路:采用递归的思想,需要注意的是最小深度与最大深度的区别:对于最大深度,不需要考虑当前子树是否为单子树(即一侧子树深度为0)的情况,即最大深度一直等于左右子树的最大值;对于最小深度,需要考虑当前子树是否为单子树的情况,对于双子树,其最小深度为左右子树的最小值,对于单子树,其最小深度为左右深度的最大值(因为有一侧的子树为0)。代码中加1的原因是加上根节点这一层。

代码:

/**
* Definition for binary tree
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int run(TreeNode root) {
if(root == null){
return 0;
}
if(root.left == null && root.right == null){
return 1;
}
if(root.left == null){
return run(root.right)+1;
}
if(root.right == null){
return run(root.left)+1;
}
if( root.left != null && root.right != null){
int leftDepth = run(root.left)+1;
int rightDepth = run(root.right)+1;
return (leftDepth>rightDepth)?rightDepth:leftDepth;
}
return 0;

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: