LeetCode 第543题:找到所有数组中消失的数字

2021-06-12  本文已影响0人  放开那个BUG

1、前言

题目描述

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;
    }
}

上一篇 下一篇

猜你喜欢

热点阅读