标签:arch 要求 arc lang node 大于等于 for tree node 等于
题目要求我们把大于等于当前结点的值累加起来然后替换掉该结点原来的值。考虑到这是一棵二叉搜索树,我们从右子树开始的中序遍历就是倒序数组。
我们需要一个pre指针指向前一个结点,就可以获得比你大的结点值之和,再加上当前结点的值就可以满足题目。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
TreeNode pre = null;
public TreeNode bstToGst(TreeNode root) {
helper(root);
return root;
}
public void helper(TreeNode root){
if(root == null){
return;
}
helper(root.right);
if(pre != null){
root.val += pre.val;
}
pre = root;
helper(root.left);
}
}
标签:arch 要求 arc lang node 大于等于 for tree node 等于
原文地址:https://www.cnblogs.com/ZJPaang/p/13196401.html