112. 路径总和

Easy

思路

首先阅读理解,我们需要寻找出一条路径使这个路径的和等于sum

一眼就是使用DFS来遍历二叉树,然后同时得到路径的和与sum做比较。我们可以初始给sum,然后向下遍历的过程中逐步减去当前节点的值。

如果值变成0,说明所经过的路径的节点和恰好是sum

注意题目要求是到根节点。也就是说当数值变成0时,也需要保证当前节点是最后一个节点。也就是说左右子节点都为空

以上,AC!

代码

python3

class Solution:
    def hasPathSum(self, root: TreeNode, sum: int) -> bool:
      def dfs(node,t):
        if node is None:
          return False
        t -= node.val
        if t is 0 and node.left is None and node.right is None:
          return True
        return dfs(node.left,t) or dfs(node.right,t)
      return dfs(root,sum)