题目
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
思路
对一个二叉树来说,是由根节点、左子树、右子树构成。那么,其深度计算思路为:
- 根节点为空:0
- 根节点不为空:左子树深度+1和右子树深度+1中,大的那个就是二叉树深度。
ps:左子树和右子树又可以看作一个新的二叉树,继续用上述思路求深度。
那么,就可以用递归进行求解
示例代码如下:
public int maxDepth(TreeNode root) {
// 根节点为空,返回0
if (Objects.isNull(root)){
return 0;
}
// 不为空,返回左子树深度+1和右子树深度+1较大的那个
return Math.max(maxDepth(root.left)+1, maxDepth(root.right)+1);
}
耐思