剑指Offer:二叉树的深度

题目

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

分析

通过分析,我们可以得出,如果一棵树只有一个节点,那么他的深度就是1,如果根节点只有左子树而没有右子树,那么树的深度应该是其左子树的深度在加1; 同样的,如果根节点只有右子树没有左子树,树的深度应该是右子树的深度在加1.如果既有左子树又有右子树,那么该树的深度就是左右子树中的较大值加1.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;

public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public int TreeDepth(TreeNode root) {
if (root == null) {
return 0;
}

int left = TreeDepth(root.left);
int right = TreeDepth(root.right);

return (left > right) ? left+1 : right+1;
}
}
有收获再赞赏哦🤭
------ 本文结束感谢您的阅读-------------
0%