[LeetCode] 1038. Binary Search Tree to Greater Sum Tree
Updated:
1038. Binary Search Tree to Greater Sum Tree
์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ํตํด ์ต๋๊ฐ์ ๊ฐ์ง ๋ ธ๋๋ถํฐ ์ฐจ๋ก๋๋ก ํ์ ํด ๊ณ์ ๊ฐ์ ๋ํด ๋ ธ๋์ ๋ค์ ์ ์ฅํด์ฃผ๋ ๋ฌธ์ .
[Python] Binary Search Tree ์ด ๊ธ์ ๋ณด๋ฉด ์ด์ง ํ์ ํธ๋ฆฌ๊ฐ ์ฃผ์ด์ง ๊ฒฝ์ฐ ์ค์์ํ๋ฅผ ํ๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ ๋ ๊ฐ์ ๊ตฌํ ์ ์๋ค.
์ค์์ํ๋ ์ผ์ชฝ ๋ถํธ๋ฆฌ โย ๋ฃจํธ โย ์ค๋ฅธ์ชฝ ๋ถํธ๋ฆฌ ์์๋ก ํ์์ ํ๋ค.
ํ์ง๋ง ์ด ๊ฒฝ์ฐ์๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ ๋ ๊ฐ์ ๊ตฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค๋ฅธ์ชฝ ๋ถํธ๋ฆฌ โ ๋ฃจํธ โ ์ผ์ชฝ ๋ถํธ๋ฆฌ ์์๋ก ๋ฐ๊ฟ์ค๋ค.
๋ ธ๋ ๊ฐ์ ํฉ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ ์ญ๋ณ์๋ก ๋ง๋ค์ด ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ํ์๋ค.
from typing import List
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def bstToGst(self, root: TreeNode) -> TreeNode:
global _sum
_sum = 0
def post_order(cur_node):
global _sum
if not cur_node:
return
else:
post_order(cur_node.right)
_sum += cur_node.val
cur_node.val = _sum
post_order(cur_node.left)
post_order(root)
return root
Leave a comment