본문 바로가기

Algorithm

[leetcode]1315. Sum of Nodes with Even-Valued Grandparent _ python3

1315Sum of Nodes with Even-Valued Grandparent

 

Sum of Nodes with Even-Valued Grandparent - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

풀이 코드

조부모 노드의 값이 짝수인 노드들의 합을 구하는 문제이다. 깊이우선탐색으로 해결했다. 단지 주의 할 부분은 dfs 함수를 재귀로 호출할 때, 현재 노드 = 부모 노드 / 현재의 부모 노드 = 조부모 노드 가 된다는 부분이다. 이 점을 고려해 dfs 함수의 인자로 현재노드와 부모노드를 인자로 넘겨주면 된다.

# 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 sumEvenGrandparent(self, root: TreeNode) -> int:
        self.answer = 0

        def dfs(root, parent, grandparent):
            if not root:
                return
            if grandparent and grandparent % 2 == 0:
                self.answer += root.val
            dfs(root.left, root.val, parent)
            dfs(root.right, root.val, parent)

        dfs(root, None, None)
        
        return self.answer