Appearance
0104-二叉树的最大深度
https://leetcode.cn/problems/maximum-depth-of-binary-tree
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明:叶子节点是指没有子节点的节点。
示例: 给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回它的最大深度3 。
基本思路
深度优先搜索 dfs 每次进入 curDepth + 1, 出来 curDepth - 1,最后中间缓存最大值
参考代码
csharp
public class Solution {
int maxDepth;
int curDepth;
private void dfs(TreeNode root){
if(root != null){
curDepth++;
maxDepth = Math.Max(curDepth,maxDepth);
dfs(root.left);
dfs(root.right);
curDepth--;
}
}
public int MaxDepth(TreeNode root) {
dfs(root);
return maxDepth;
}
}
参考代码2【官方:直接递归】
csharp
public class Solution{
public int MaxDepth(TreeNode root){
if(root == null){
return 0;
}
int leftDepth = MaxDepth(root.left);
int rightDepth = MaxDepth(root.right);
return Math.Max(leftDepth,rightDepth)+1;
}
}
AlgoPress