核心思路:DFS遍历时用哈希表记录从根到当前节点的所有前缀和出现次数,对于当前节点,路径和等于当前前缀和减去某个祖先的前缀和,如果差为0说明该段路径和为0,再排除长度1的情况即可。这是典型的前缀和+回溯解法。
具体步骤:
curSum,以及哈希表prefixCount记录之前每个前缀和出现的次数curSum += node.val,然后从哈希表中查找curSum - 0 = curSum的出现次数,这就是以当前节点结尾且路径和为0的路径数注意:本题据考生反馈,直接print(0) 能通过45% ,拿67.5分
定义二叉树的平衡路径需同时满足以下 3 个条件:
请实现一个 Python 函数,输入二叉树的根节点(按层序遍历规则构建),返回该树中所有“平衡路径”的总数。
注意:
二叉树的层序遍历列表(元素为整数或 None,None 表示空节点)
整数,表示平衡路径的总数
输入
[10, -5, -5, 2, -2, 3, -3]
输出
0
输入
[0, 0, None]
输出
1
输入
[1, -1, 2, -2, None, 3, -3]
输出
2