leecode更新
This commit is contained in:
parent
28e1a9c674
commit
2309bfa13d
|
|
@ -90,4 +90,29 @@ public class T049_MinDepth {
|
||||||
return depth;
|
return depth;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 思路:评论区对于需要一直找左右的优化,实际上没有优化
|
||||||
|
* 速度击败16.1%,内存击败39.79%
|
||||||
|
* @param root
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public int minDepth2(TreeNode root) {
|
||||||
|
if(root==null){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(root.left==null&&root.right==null){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
//2.如果左孩子和由孩子其中一个为空,那么需要返回比较大的那个孩子的深度
|
||||||
|
int m1 = minDepth2(root.left);
|
||||||
|
int m2 = minDepth2(root.right);
|
||||||
|
//这里其中一个节点为空,说明m1和m2有一个必然为0,所以可以返回m1 + m2 + 1;
|
||||||
|
if(root.left == null || root.right == null) return m1 + m2 + 1;
|
||||||
|
|
||||||
|
//3.最后一种情况,也就是左右孩子都不为空,返回最小深度+1即可
|
||||||
|
return Math.min(m1,m2) + 1;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue