给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node
的新值等于原树中大于或等于 node.val
的值之和。
解题思路:
其实就是相当于反中序遍历,然后当前结点的值加上之前遍历结点值的和。
public class title538 {int sum=0; //sum为之前节点的和public TreeNode convertBST(TreeNode root) {traversal(root);return root;}//反中序遍历public void traversal(TreeNode root){if(root==null) return;//遍历顺序为 右,中,左traversal(root.right);root.val=root.val+sum;sum=root.val;traversal(root.left);}
}