LeetCode-538-把二叉搜索树转换为累加树
思路
简单理解一下题目:
首先二叉搜索树是一颗有顺序的树,上面的树中序遍历的结果就是[0,1,2,3,4,5,6,7,8]。累加树的意思其实从结果就可以看出,遍历结果是
[36,36,35,33,30,26,21,15,8],其实就是反中序遍历累加。那么我们只要保存每一次遍历的前一个值即可。
代码
class Solution {
int sum=0;
public TreeNode convertBST(TreeNode root) {
Travel(root);
return root;
}
public void Travel(TreeNode root){
if(root==null)return;
Travel(root.right);
sum+=root.val;
root.val=sum;
Travel(root.left);
return;
}
}