/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int minDepth(TreeNode root) {
int res = 0;
if (root == null) {
return res;
}
if(root.left == null && root.right == null){
return 1;
}
ArrayList<TreeNode> tmp = new ArrayList<TreeNode>();
tmp.add(root);
boolean finded = false;
boolean findedLeft = false;
boolean findedRight = false;
while(tmp.size() != 0){
ArrayList<TreeNode> next = new ArrayList<TreeNode>();
for(int i = 0 ; i < tmp.size() ; i++){
if(tmp.get(i).left != null){
next.add(tmp.get(i).left);
findedLeft = false;
}else{
findedLeft = true;
}
if(tmp.get(i).right != null){
next.add(tmp.get(i).right);
findedRight = false;
}else{
findedRight = true;
}
if(findedLeft && findedRight){
finded = true;
break;
}
}
res++;
if(finded){
break;
}
tmp = next;
}
return res < 2 ? 2 : res;
}
}
理解了这个概念,改了好多次
Minimum Depth of Binary Tree
最新推荐文章于 2019-10-14 15:25:45 发布