😎풀이

  1. 역방향 중위 탐색 필요
  2. root로부터 leaf노드로 전파되며 우측노드 -> 부모노드 -> 좌측노드 순으로 전파됨
  3. 총합을 계산하며 각 노드의 값을 현재의 총합으로 할당
  4. root 노드 반환
function convertBST(root: TreeNode | null): TreeNode | null {
    if(!root) return null
    let total = 0
    function reverseInOrder(node: TreeNode) {
        if(!node) return
        reverseInOrder(node.right)
        total += node.val
        node.val = total
        reverseInOrder(node.left)
    }
    reverseInOrder(root)
    return root
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글