解题思路:分别是用前序遍历和后序遍历,前序遍历就是正常的从上到下求深度,而后续遍历就是从下到上求高度,而高度和深度是互逆的,所以这里采用后续遍历,需要注意的是,最底层是从1开始的,所以遍历到底部时记录的高度时1+遍历
具体代码实现如下:
class Solution {
public:
int travel(TreeNode*root){
if(root==NULL)return 0;
int lefthigh=travel(root->left);
int righthigh=travel(root->right);
int Depth=1+max(lefthigh,righthigh);
return Depth;
}
int maxDepth(TreeNode* root) {
return travel(root);
}
};
题目如下:
给定一个二叉树 root
,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1:
输入:root = [3,9,20,null,null,15,7] 输出:3
示例 2:
输入:root = [1,null,2] 输出:2
提示:
- 树中节点的数量在
[0, 104]
区间内。