题目描述:
提示:
树中的节点数在 2 到 5000 之间。
每个节点的值介于 0 到 100000 之间。
思路:首先肯定是递归来实现,从根节点开始计算,和每个子节点之间的最大差值,然后递归自身,将左子树和右子树作为递归开始,代码如下
class Solution {
int max = 0;
public int maxAncestorDiff(TreeNode root) {
if(root != null){
get(root, root.left);
get(root, root.right);
maxAncestorDiff(root.left);
maxAncestorDiff(root.right);
}
return max;
}
public void get(TreeNode root1,TreeNode root2){
if(root1 == null || root2 == null){
return ;
}
int tem = Math.abs(root1.val - root2.val);
max = tem > max ? tem : max;
get(root1, root2.left);
get(root1, root2.right);
}
}