LeetCode热题100-路径总和 III

给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum路径 的数目。

路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。

示例 1:

复制代码
输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8
输出:3
解释:和等于 8 的路径有 3 条,如图所示。
思路
  • 双重递归:
    • 外层:遍历每一个节点作为起点
    • 内层:从该起点向下遍历,统计符合和的路径数
python 复制代码
class Solution:
    def pathSum(self, root: Optional[TreeNode], targetSum: int) -> int:
        if not root:
            return 0
        def dfs(node, cur):
            if not node:
                return 0
            cnt = 0
            cur += node.val
            if cur == targetSum:
                cnt += 1
            cnt += dfs(node.left, cur)
            cnt += dfs(node.right, cur)
            return cnt
        return dfs(root, 0) + self.pathSum(root.left, targetSum) + self.pathSum(root.right, targetSum)
相关推荐
RTC老炮3 小时前
WebRTC AEC3 算法原理分析
算法·webrtc
炽烈小老头4 小时前
【每天学习一点算法 2026/05/20】省份数量
学习·算法
乐迪信息4 小时前
乐迪信息:港口夜间船舶巡查难,AI摄像机法全天候监测
人工智能·物联网·算法·计算机视觉·目标跟踪
sali-tec4 小时前
C# 基于OpenCv的视觉工作流-章74-线-线距离
图像处理·人工智能·opencv·算法·计算机视觉
YL200404264 小时前
054实现Trie(前缀树)
数据结构·leetcode
故事和你914 小时前
洛谷-【图论2-3】最小生成树1
开发语言·数据结构·c++·算法·动态规划·图论
故事和你914 小时前
洛谷-【图论2-3】最小生成树2
开发语言·数据结构·c++·算法·动态规划·图论
guygg884 小时前
贝叶斯非局部均值降噪算法C语言实现
c语言·算法·均值算法
量子炒饭大师4 小时前
【优化算法】滑动窗口的「义体化」重构 ——【滑动窗口】何为滑动窗口?滑动窗口算法的核心目的是什么?
c++·算法·重构·优化算法·双指针·滑动窗口