Convert BST to Greater Tree

LeetCode

LeetCode: https://leetcode.com/problems/convert-bst-to-greater-tree/

Convert a BST so each node contains the sum of all keys greater than or equal to it.

1def convertBST(root: Optional[TreeNode]) -> Optional[TreeNode]:
2 total = 0
3 def dfs(node: Optional[TreeNode]) -> None:
4 nonlocal total
5 if not node:
6 return
7 dfs(node.right)
8 total += node.val
9 node.val = total
10 dfs(node.left)
11 dfs(root)
12 return root
5
0
2
1
node
13
2
tree=[5, 2, 13]
sum=13
Step 1 / 3
Step 1:
Traverse in reverse inorder to accumulate suffix sums.
Pointers: node=2
Focus: select @ [2]
sum=13