# java求二叉树的深度

2016/06/29 13:27

## 解题


package demo18;
class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
/**
* 获取二叉树深度
* @author mengfeiyang
*
*/
public class Solution2 {
public int TreeDepth(TreeNode pRoot){
if(pRoot ==null)
return 0;
int nLeft=TreeDepth(pRoot.left);
int nRight=TreeDepth(pRoot.right);

return nLeft>nRight?(nLeft+1):(nRight+1);
}

/**
* 测试
* @param args
*/
public static void main(String[] args) {
Solution2 s2 = new Solution2();
/**
* 构造二叉树
*       1
*      / \
*     2   3
*    / \ / \
*   4  5 6  7
*/
TreeNode root = new TreeNode(1);
TreeNode left = new TreeNode(2);
TreeNode right = new TreeNode(3);

TreeNode left_1 = new TreeNode(4);
TreeNode right_1 = new TreeNode(5);
TreeNode right_2 = new TreeNode(6);
TreeNode left_2 = new TreeNode(7);

left.left = left_1;
left.right = right_1;
right.left = left_2;
right.right = right_2;

root.left = left;
root.right = right;

System.out.println(s2.TreeDepth(root));// 输出结果为：3
}
}

0 评论
0 收藏
0