LeetCode 112 [Path Sum]

作者: Jason_Yuan | 来源:发表于2016-08-18 15:14 被阅读26次

    原题

    给出一个二叉树和一个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
    

    相关文章

      网友评论

        本文标题:LeetCode 112 [Path Sum]

        本文链接:https://www.haomeiwen.com/subject/jbuvsttx.html