当前位置:   article > 正文

日拱一卒(4)——leetcode学习记录:路径总和

日拱一卒(4)——leetcode学习记录:路径总和

一、任务:

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。

叶子节点 是指没有子节点的节点。

二、思路:

1. 递归

节点不存在,返回False
左右子节点都不存在,返回targetSum == root.val
左右节点都存在,返回 递归(左子节点,targetSum-root.val)or递归(右子节点,targetSum-root.val)
其他,返回 递归(左子节点or右子节点,targetSum-root.val)
三、解答

  1. # Definition for a binary tree node.
  2. # class TreeNode:
  3. # def __init__(self, val=0, left=None, right=None):
  4. # self.val = val
  5. # self.left = left
  6. # self.right = right
  7. class Solution:
  8. def hasPathSum(self, root: Optional[TreeNode], targetSum: int) -> bool:
  9. if not root:
  10. return False
  11. elif not root.left and not root.right:
  12. return targetSum == root.val
  13. elif root.left and root.right:
  14. return self.hasPathSum(root.left,targetSum-root.val) or self.hasPathSum(root.right,targetSum-root.val)
  15. else:
  16. return self.hasPathSum(root.left or root.right,targetSum-root.val)

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/1001915
推荐阅读
相关标签
  

闽ICP备14008679号