[437][中等][DFS][前缀和] 路径总和 III
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
给定一个二叉树,它的每个结点都存放着一个整数值。
找出路径和等于给定数值的路径总数。
路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。
示例:
[113][中等][DFS] 路径总和 II的升级版. 这里我们考虑的路径不再是从树的根节点到叶子结点, 而是树中任意一部分路径, 不需要从根节点开始, 也不需要尾是根节点.
因此在DFS的过程中要维护根节点到当前路径的长度, 以及前缀和哈希表, 记录每个前缀值出现的次数. 在从当前节点回退到上一层节点的时候, 要特别注意这两个变量的回溯.
无论是统计路径的数量还是具体的路径, 都要使用DFS遍历所有的节点. 我们把从根节点到叶子结点称为完整的路径, 现在的结果可能这个完整路径的子路径, 容易想到这道题目, 只是由数组的形式变为了树中路径的形式, 但本质上都是一样的.