leetcode1026

 1 public class Solution
 2     {
 3         Stack<int> S = new Stack<int>();
 4         int maxValue = 0;
 5         public void Trace(TreeNode root)
 6         {
 7             if (root != null)
 8             {
 9                 S.Push(root.val);
10                 if (root.left != null)
11                 {
12                     Trace(root.left);
13                 }
14                 if (root.right != null)
15                 {
16                     Trace(root.right);
17                 }
18                 if (root.left == null && root.right == null)
19                 {
20 
21                     var ary = S.ToArray().Reverse().ToList();
22                     var len = ary.Count();
23                     for (var i = 0; i < len; i++)
24                     {
25                         for (int j = i + 1; j < len; j++)
26                         {
27                             maxValue = Math.Max(maxValue, Math.Abs(ary[i] - ary[j]));
28                         }
29                         //Console.WriteLine(a);
30                     }
31                     //Console.WriteLine(maxValue);
32                 }
33                 S.Pop();
34             }
35         }
36         public int MaxAncestorDiff(TreeNode root)
37         {
38             Trace(root);
39             return maxValue;
40         }
41     }

猜你喜欢

转载自www.cnblogs.com/asenyang/p/10704660.html
今日推荐