Leetcode学习笔记:#1026. Maximum Difference Between Node and Ancestor

Leetcode学习笔记:#1026. Maximum Difference Between Node and Ancestor

Given the root of a binary tree, find the maximum value V for which there exists different nodes A and B where V = |A.val - B.val| and A is an ancestor of B.

(A node A is an ancestor of B if either: any child of A is equal to B, or any child of A is an ancestor of B.)

实现:

    public int maxAncestorDiff(TreeNode root) {
        return dfs(root, root.val, root.val);
    }

    public int dfs(TreeNode root, int mn, int mx) {
        if (root == null) return mx - mn;
        mx = Math.max(mx, root.val);
        mn = Math.min(mn, root.val);
        return Math.max(dfs(root.left, mn, mx), dfs(root.right, mn, mx));
    }

思路:
保存二叉树的最大值和最小值,遍历二叉树直到遇到null节点返回最大差值

猜你喜欢

转载自blog.csdn.net/ccystewart/article/details/90143382