两遍DFS暴力解法
注意:本题据考生反馈,直接print(0) 能通过45% ,拿67.5分
1.本题前置知识:二叉树的构建
2.官方题解难度比较大,建议看我拍的两遍DFS的做法
P4821.第2题-统计二叉树中“平衡路径”的数量
题目内容
定义二叉树的平衡路径需同时满足以下 3 个条件:
- 路径从任意节点出发,仅能向下延伸(只能向左/右子节点,不可向上回溯)。
- 路径上所有节点的和相加为 0。
- 路径长度(包含的节点个数)至少为 2。
请实现一个 Python 函数,输入二叉树的根节点(按层序遍历规则构建),返回该树中所有“平衡路径”的总数。
注意:
- 建树规则:层序遍历列表按「从上到下、从左到右」的顺序构建二叉树,None 表示对应位置无节点。
- 路径延伸:从起点出发,仅沿左子节点 OR 右子节点单向向下(单链,不可分叉)。
- 统计方式:每个符合条件的单链路径独立计数(即使路径有重叠)。
输入描述
二叉树的层序遍历列表(元素为整数或 None,None 表示空节点)
输出描述
整数,表示平衡路径的总数
样例1
输入
[10, -5, -5, 2, -2, 3, -3]
输出
0
样例2
输入
[0, 0, None]
输出
1
样例3
输入
[1, -1, 2, -2, None, 3, -3]
输出
2
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写