题目要求:思路:递归传递(sum-当前节点的val)给当前节点的左子树和右子树如果当前节点没有左子树或右子树,则求和为0,说明到达了一个叶子节点,路径中有到这个叶子节点的路径。这条路径上所有节点值的和等于sum,返回True核心代码:#如果root为空,则表示yaoif不是root:returnFalseifroot.val==sumandnotroot.leftandnotroot.right:returnTrue#递归left=self.hasPathSum(root.left,sum-root.val)right=self.hasPathSum(root.right,sum-root.val)#如果left和right之一为True,结果为Truereturnleftorright完整代码:#一个二叉树节点的定义。#classTreeNode:#def__init__(self,x):#self.val=x#self.left=None#self.right=Noneclass解决方案:defhasPathSum(self,root:TreeNode,sum:int)->bool:如果不是root:返回False如果root.val==sum而不是root.left而不是root.right:返回Trueleft=self.hasPathSum(root.left,sum-root.val)right=self.hasPathSum(root.right,sum-root.val)returnleftorright
