本文主要是介绍Leetcode——112. 路径总和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。
说明: 叶子节点是指没有子节点的节点。
示例:
给定如下二叉树,以及目标和 sum = 22,
5/ \4 8/ / \11 13 4/ \ \7 2 1
返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。
思路:递归,需要注意递归的终止点,如果左右子树都为None,直接返回,然后递归。
class Solution(object):def hasPathSum(self, root, sum):""":type root: TreeNode:type sum: int:rtype: bool"""if root == None:return Falseif root.left==None and root.right==None:return root.val==sumif (self.hasPathSum(root.left,sum-root.val)):return Trueif (self.hasPathSum(root.right,sum-root.val)):return Truereturn False
这篇关于Leetcode——112. 路径总和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!