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;
}
}
本文详细介绍了如何将一个二叉搜索树转换为累加树,关键在于反中序遍历并累加节点值。通过提供Java代码实现,展示了如何在遍历过程中更新每个节点的值,最终得到累加效果的二叉树。
751

被折叠的 条评论
为什么被折叠?



