非递归写法:层次遍历
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import java.util.Queue;
import java.util.LinkedList;
public class Solution {
public int TreeDepth(TreeNode pRoot)
{
if(pRoot ==null){
return 0;
}
Queue<TreeNode> queue =new LinkedList<TreeNode>();
queue.add(pRoot);
int depth =0, count =0, nextCount =1;
while(queue.size()!=0){
TreeNode top = queue.poll();
count++;
if(top.left !=null){
queue.add(top.left);
}
if(top.right !=null){
queue.add(top.right);
}
if(count == nextCount){
nextCount = queue.size();
count =0;
depth++;
}
}
return depth;
}
}
|
递归写法,比较简单,不解释:
1 2 3 4 5 6 7 8 9 10 11 12 | import java.lang.Math;
public class Solution {
public int TreeDepth(TreeNode pRoot)
{
if(pRoot ==null){
return 0;
}
int left = TreeDepth(pRoot.left);
int right = TreeDepth(pRoot.right);
return Math.max(left, right) +1;
}
}
|
咱不解释