非递归写法:层次遍历
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 ;
}
}
|
咱不解释