ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 538. Convert BST to Greater Tree
    Programming/leetcode 2021. 2. 11. 18:52
    728x90

    영어 해석이 안되면, 그림 해석을 잘해야되는데, 아직은 그렇지 못한것 같다. 

    그래프를 돌면서 값을 더해주면 되는 문제였는데, 왜 어제는 안보였는지 모르겠다. 

     

    BST는 자식 - 부모 순으로 순회를 하는 것이다.

    이진탐색트리는  전위, 중위, 후위 순회 방법이 있다. 

     

    전위 순회(Preorder Traversal): 부모 → 좌 → 우
    중위 순회(Inorder Traversal): 좌 → 부모 → 우
    후위 순회(Postorder Traversal): 좌 → 우 → 부모

     

    문제에서는 우->부모->좌로 순회를 한다. 중위 순회의 변형이라 볼수 있겠다. 

     

    오른쪽 자식이 없을때 까지 내려간 다음, val을 우->부모->좌 순서로 더해서 올라오면 된다. 

     

        def __init__(self):
            self.sum = 0
        def convertBST(self, root: TreeNode) -> TreeNode:
            if root:
                self.convertBST(root.right)
                self.sum += root.val
                root.val = self.sum
                self.convertBST(root.left)
            return root

    'Programming > leetcode' 카테고리의 다른 글

    24. Swap Nodes in Pairs  (0) 2021.02.15
    1342. Number of Steps to Reduce a Number to Zero  (0) 2021.02.14
    242. Valid Anagram  (0) 2021.02.11
    2. Add Two Numbers  (0) 2021.02.08
    206. Reverse Linked List  (0) 2021.02.08
Designed by Tistory.