美文网首页
03_路径总和

03_路径总和

作者: butters001 | 来源:发表于2019-11-12 10:49 被阅读0次
# Definition for a binary tree node.
class TreeNode(object):
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


# 32ms
class Solution(object):
    def hasPathSum(self, root, sum):
        """
        :type root: TreeNode
        :type sum: int
        :rtype: bool
        解题思路:肯定要找到所有的 根--->叶子节点的路径
        list 为根到每个叶子节点的和
        """
        if not root:
            return False

        # list1 = []
        list2 = []
        def helper(node, cur):
            # list1.append(cur)
            if not node:
                return
            if not node.left and not node.right:
                list2.append(cur)
            if node.left:
                helper(node.left, node.left.val+cur)
            if node.right:
                helper(node.right, node.right.val + cur)
        helper(root, root.val)
        return sum in list2


# leetcode 最优解 这个有点意思 他用的是减法 我用的是加法 not and not是结束条件 和我的一样
class Solution2(object):
    def hasPathSum(self, root, sum):
        """
        :type root: TreeNode
        :type sum: int
        :rtype: bool
        """
        if not root:
            return False
        sum -= root.val
        if not root.right and not root.left:
            return sum == 0
        return self.hasPathSum(root.left, sum) or self.hasPathSum(root.right, sum)


a = TreeNode(5)
b = TreeNode(4)
c = TreeNode(8)
d = TreeNode(11)
e = TreeNode(13)
f = TreeNode(4)
g = TreeNode(7)
h = TreeNode(2)
i = TreeNode(1)
a.left, a.right = b, c
b.left = d
c.left, c.right = e, f
d.left, d.right = g, h
f.right = i

s = Solution()
sum = 10
print(s.hasPathSum(a, sum))


相关文章

  • 03_路径总和

  • 路径总和

    给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明:...

  • 路径总和

    题目 难度级别:简单 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相...

  • 路径总和

    给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明:...

  • 【112】路径总和

    给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 使用递...

  • 路径总和 III

    题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/path...

  • leetcode 路径总和

    关注公众号 长歌大腿,发送“机器学习”关键字,可获取包含机器学习(包含深度学习),统计概率,优化算法等系列文本与视...

  • Leetcode - 路径总和

    系列题目 第1类 Leetcode-112路径总和该树中是否存在根节点到叶子节点的路径,返回true/false即...

  • 路径总和II

    给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节...

  • 【LeetCode】路径总和

    题目描述: https://leetcode-cn.com/problems/path-sum/ 解题思路: 第一...

网友评论

      本文标题:03_路径总和

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