LeetCode/Top Interview 150
129. Sum Root to Leaf Numbers
hyunkookim
2024. 12. 13. 18:29
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def sumNumbers(self, root: Optional[TreeNode]) -> int:
stack = []
def dfs(node, curString):
if not node:
return
curString += str(node.val)
if not node.left and not node.right: # 리프 노드면
stack.append(int(curString))
dfs(node.left, curString)
dfs(node.right, curString)
dfs(root, "")
return sum(stack)
https://youtu.be/Jk16lZGFWxE?si=Bda3XXK1h8wfwLh-
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def sumNumbers(self, root: Optional[TreeNode]) -> int:
def dfs(cur, num):
if not cur:
return 0
num = num*10 + cur.val
if not cur.left and not cur.right: # 리프 노드면
return num
return dfs(cur.left, num) + dfs(cur.right, num)
return dfs(root, 0)
"""
1
2 3
루드: 0 * 10 + 1 = 1
왼쪽: 1 * 10 + 2 = 12
오른쪽: 1 * 10 + 3 = 13
"""