Search

Sum of Left Leaves

문제 설명 : 제공된 트리 중, leef노드인 좌측 자식 노드들의 값을 합산한 결과를 반환
풀이 방법
다른 순회처럼 동일하게 진행하되, 왼쪽 자식 노드는 2가지로 동작을 나눈다.
1.
leef 노드일 경우 → 합산만 진행, 순회 X
2.
leef 노드가 아닐 경우 → 우측 자식 노드처럼 동일하게 순회
시간복잡도 : O(N)O(N)
성공 코드
# 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 sumOfLeftLeaves(self, root: Optional[TreeNode]) -> int: self.result = 0 def is_leef_node(node) -> bool: return not node.left and not node.right def search_tree(node): # 왼쪽 자식 노드는 미리 검사하여, leef 노드인지 확인 if node.left: if is_leef_node(node.left): self.result += node.left.val else: search_tree(node.left) if node.right: search_tree(node.right) if root: search_tree(root) return self.result
Python
복사