LeetCode 112 [Path Sum]

1335 단어

원제


두 갈래 나무와sum를 제시하여 뿌리 노드에서 잎 노드까지의 경로가 존재하는지 판단하여 경로와sum를 같게 합니다
예시 아래 두 갈래 나무와sum = 22
              5
             / \
            4   8
           /   / \
          11  13  4
         /  \      \
        7    2      1


True로 돌아가기 5 -> 4 -> 11 -> 2의 합은 22입니다.

문제 풀이 사고방식

  • 두 갈래 나무가 두루 다닌다
  • 뿌리에서 잎까지의 경로를 찾아 합을 구하면sum와 같으면 True로 바로 돌아갑니다

  • 전체 코드

    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def hasPathSum(self, root, sum):
            """
            :type root: TreeNode
            :type sum: int
            :rtype: bool
            """
            if not root:
                return False
            if self.helper(root, 0, sum) == True:
                return True
            return False
            
        def helper(self, root, subSum, sum):
            if root.left == None and root.right == None:
                if subSum + root.val == sum:
                    return True
            if root.left and self.helper(root.left, subSum + root.val, sum):
                return True
            if root.right and self.helper(root.right, subSum + root.val, sum):
                return True
    

    좋은 웹페이지 즐겨찾기