【Java】面试题55:二叉树的深度
题目一:二叉树的深度
- 题目一:二叉树的深度
- 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点形成树的一条路径,
- 最长路径的长度为树的深度。从根节点到叶节点依次经过的节点形成树的一条路径,最长路径的长度为树的深度。
思路:
package jianZhiOffer;
/*
* 面试题55:二叉树的深度
* 题目一:二叉树的深度
* 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点形成树的一条路径,
* 最长路径的长度为树的深度。
*/
public class Demo5501 {
class BinaryTreeNode{
int val;
BinaryTreeNode left;
BinaryTreeNode right;
public BinaryTreeNode(int val){
this.val = val;
}
}
public static void main(String[] args) {
Demo5501 m = new Demo5501();
BinaryTreeNode root = m.new BinaryTreeNode(1);
BinaryTreeNode a = m.new BinaryTreeNode(2);
BinaryTreeNode b = m.new BinaryTreeNode(3);
BinaryTreeNode c = m.new BinaryTreeNode(4);
BinaryTreeNode d = m.new BinaryTreeNode(5);
BinaryTreeNode e = m.new BinaryTreeNode(6);
BinaryTreeNode f = m.new BinaryTreeNode(7);
root.left = a;
root.right = b;
a.left = c;
a.right = d;
b.right = e;
d.left = f;
System.out.println(TreeDepth(root));
}
private static int TreeDepth(BinaryTreeNode pRoot) {
if(pRoot==null)
return 0;
int nLeft = TreeDepth(pRoot.left);
int nRight = TreeDepth(pRoot.right);
return (nLeft>nRight)? (nLeft+1):(nRight+1);
}
}