力扣:二叉树的最大深度java
流程:
1.判断使用哪种遍历方式(后序)根节点不断向上加1
2.递归三部曲:选择参数和返回值(参数为要计算深度根节点,返回一个深度值)
判断结束条件,(到达叶子节点的下面空节点,返回0)
递归逻辑,递归计算当前节点左右子树的高度,返回最大值加1
class Solution {
public int maxDepth(TreeNode root) {//主函数
return deep(root);//调用获取深度的函数
}
public int deep(TreeNode cur){//设置返回一个长度,参数为根节点
if(cur == null){//结束条件,到达叶子节点的空节点,返回长度为0
return 0;
}
int lLen = deep(cur.left);//计算左子树的高度
int rLen = deep(cur.right);//计算右子树的高度
int len =1+(lLen>rLen?lLen:rLen);//返回当前节点的高度,等于1+左右子树最高的值
return len;
}
}