题解 | #二叉树的深度#
二叉树的深度
http://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
import java.util.*;
public class Solution {
public int TreeDepth(TreeNode root) {
if(root==null) return 0;
int left = TreeDepth(root.left);
int right = TreeDepth(root.right);
return 1+Math.max(left,right);
//return helper(root);
}
/**** 层序遍历 时间O(N)空间O(N) *****/
public int helper(TreeNode root){
if(root==null) return 0;
Queue<TreeNode> q = new LinkedList<>();
q.add(root);
int high = 0;
while(!q.isEmpty()){
int size = q.size();
for(int i=0;i<size;i++){
TreeNode cur = q.poll();
if(cur.left!=null){
q.add(cur.left);
}
if(cur.right!=null){
q.add(cur.right);
}
}
high++;
}
return high;
}
/**********************************/
}