题目链接:
力扣https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/
【分析】定义一个全局变量用来记录答案,然后dfs遍历这棵树,如果到了叶子结点就比较当前深度和ans的大小即可。
class Solution {
int ans = 0;
public void dfs(TreeNode node, int t){
if(node == null) ans = Math.max(ans, t);
else{
dfs(node.left, t + 1);
dfs(node.right, t + 1);
}
}
public int maxDepth(TreeNode root) {
dfs(root, 0);
return ans;
}
}
【优化】更简洁的写法
class Solution {
public int maxDepth(TreeNode root) {
if(root == null) return 0;
int left = maxDepth(root.left);
int right = maxDepth(root.right);
return Math.max(left, right) + 1;
}
}