Untitled
public class BSTToGreaterTree { public TreeNode convertBST(TreeNode root) { reverseInOrderTraversal(root, 0); return root; } private int reverseInOrderTraversal(TreeNode node, int greaterSum) { if (node == null) return greaterSum; // Traverse the right subtree, get the updated sum greaterSum = reverseInOrderTraversal(node.right, greaterSum); // Update the current node's value node.val += greaterSum; // Update the sum to include the current node's value greaterSum = node.val; // Traverse the left subtree, passing the updated sum return reverseInOrderTraversal(node.left, greaterSum); } }
Leave a Comment