LeetCode 第543题:找到所有数组中消失的数字
2021-06-12 本文已影响0人
放开那个BUG
1、前言
![](https://img.haomeiwen.com/i11345146/f566ca3086d99c51.png)
2、思路
一看到这道题,我就想到使用求二叉树的最大深度的思路。求最大深度是,我们先求出左子树的最大深度,再求出右子树的最大深度,然后再返回最大的。最后的返回值确实只有一个,但是我们可以定义一个全局遍历,在返回之前,先让 left + right 与全局变量比较,取最大的。
最后结果返回的时候,为全局变量。
3、代码
public class Q543_DiameterOfBinaryTree {
private int max = 0;
public int diameterOfBinaryTree(TreeNode root) {
if(root == null){
return 0;
}
dfs(root);
return max;
}
private int dfs(TreeNode root){
if(root == null){
return 0;
}
int left = dfs(root.left);
int right = dfs(root.right);
max = Math.max(max, left + right);
return Math.max(left, right) + 1;
}
}