/*
* 输入一棵二叉树,求该树的深度。
* 从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,
* 最长路径的长度为树的深度。
* 思路:考虑用递归的思想,一个根节点的深度等于其左右节点深度的最大值加1
*/
public class TreeDepth {
public int treeDepth(TreeNode root) {
if(root == null) {
return 0;
}
int nLeft = treeDepth(root.left);
int nRight = treeDepth(root.right);
return nLeft > nRight ? (nLeft + 1) : (nRight + 1);
}
public static void main(String[] args) {
TreeNode root1 = new TreeNode(5);
root1.left = new TreeNode(4);
root1.right = new TreeNode(6);
root1.left.left = new TreeNode(3);
root1.left.right = new TreeNode(2);
root1.left.left.left = new TreeNode(2);
root1.left.left.right = new TreeNode(1);
root1.left.left.left.left = new TreeNode(1);
System.out.println(new TreeDepth().treeDepth(root1));
}
}
《剑指offer》-求二叉树的深度
最新推荐文章于 2022-05-05 17:14:54 发布