码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 1026. Maximum Difference Between Node and Ancestor

时间:2019-07-07 09:48:28      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:some   cep   roo   题解   href   com   level   enc   val   

原题链接在这里:https://leetcode.com/problems/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.)

 

Example 1:

技术图片

Input: [8,3,10,1,6,null,14,null,null,4,7,13]
Output: 7
Explanation: 
We have various ancestor-node differences, some of which are given below :
|8 - 3| = 5
|3 - 7| = 4
|8 - 1| = 7
|10 - 13| = 3
Among all possible differences, the maximum value of 7 is obtained by |8 - 1| = 7.

 

Note:

  1. The number of nodes in the tree is between 2 and 5000.
  2. Each node will have value between 0 and 100000.

题解:

Perform DFS top down. On each level, Calculate maxmimum difference and update minimum and maximum value.

Time Complexity: O(n).

Space: O(h).

AC Java:

 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 class Solution {
11     int res = 0;
12     
13     public int maxAncestorDiff(TreeNode root) {
14         if(root == null){
15             return res;
16         }
17         
18         dfs(root, root.val, root.val);
19         return res;
20     }
21     
22     private void dfs(TreeNode root, int min, int max){
23         if(root == null){
24             return;
25         }
26         
27         res = Math.max(res, Math.max(Math.abs(root.val - min), Math.abs(max-root.val)));
28         min = Math.min(min, root.val);
29         max = Math.max(max, root.val);
30         dfs(root.left, min, max);
31         dfs(root.right, min, max);
32     }
33 }

 

LeetCode 1026. Maximum Difference Between Node and Ancestor

标签:some   cep   roo   题解   href   com   level   enc   val   

原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/11144923.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!