•
문제 설명 : 제공된 트리 중, leef노드인 좌측 자식 노드들의 값을 합산한 결과를 반환
•
풀이 방법
◦
다른 순회처럼 동일하게 진행하되, 왼쪽 자식 노드는 2가지로 동작을 나눈다.
1.
leef 노드일 경우 → 합산만 진행, 순회 X
2.
leef 노드가 아닐 경우 → 우측 자식 노드처럼 동일하게 순회
•
시간복잡도 :
•
성공 코드
# 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
복사