Binary Search Tree to Greater Sum Tree
MediumTreeDepth-First SearchBinary Search TreeBinary Tree
Solution
import { TreeNode } from '@algorithm/lib';
export function bstToGst(root: TreeNode | null): TreeNode | null {
function traverse(node: TreeNode | null, prevValue: number): number {
if (node === null) {
return 0;
}
let sumValue = node.val + traverse(node.right, prevValue);
node.val = sumValue + prevValue;
sumValue += traverse(node.left, node.val);
return sumValue;
}
traverse(root, 0);
return root;
}