阅读 8

Maximum Difference Between Node and Ancestor——LeetCode

题目描述

思想

从上向下深度遍历,记录下当前路径中的最大值和最小值,并使用当前节点的值与最大值和最小值相减得到差值,与result进行比较,差值较大的更新到result。

代码实现

class Solution {
    int res = 0;
    public int maxAncestorDiff(TreeNode root) {
        dfs(root, root.val,root.val);
        return res;
        
    }
    
    public void dfs(TreeNode root, int max, int min){
        
        if(root == null){
            return;
        }
        max = Math.max(root.val,max);
        min = Math.min(root.val,min);
        res = Math.max(res, Math.max(Math.abs(root.val-max), Math.abs(root.val-min)));
        
        // System.out.println(res);
        dfs(root.left, max, min);
        dfs(root.right, max, min);
        
    }
}
复制代码
关注下面的标签,发现更多相似文章
评论