题目 ->LC104. 二叉树的最大深度

解题思路

难点在怎么将深度加起来

我们对二叉树进行后序遍历 左 -> 右 -> 中

我们将遍历到的节点看作中间节点,那么它的深度就是左右子树中最大深度+1

代码

Python

1
2
3
4
5
6
7
8
class Solution:
def maxDepth(self, root: Optional[TreeNode]) -> int:
def dfs(node):
if node is None: return 0
cnt = 1 + max(dfs(node.left), dfs(node.right))
return cnt
ans = dfs(root)
return ans

C++

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
int dfs(TreeNode* node) {
if (node == NULL) return 0;
int maxcnt = 1 + max(dfs(node->left), dfs(node->right));
return maxcnt;
}

int maxDepth(TreeNode* root) {
return dfs(root);
}
};