题目描述
输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。
示例:
给定如下二叉树,以及目标和sum=22
1 | 5 |
返回:
1 | [ |
提示:节点总数<=10000
思路
- 采用递归,对二叉树进行前序遍历
- 初始化结果
result
,路径path
recur(root,tar)
函数:- 参数:当前节点
root
,当前目标值tar
- 终止条件:当前节点
root
为空 - 过程
- 路径更新:将当前节点值
root.val
加入路劲path
- 目标更新:
tar -= root.val
(即tar
从sum
减至0
) - 路径记录:当
root
为叶子结点且tar==0
,则将此路径path
加入到result
中 - 路径回溯:回溯前,需要将当前节点的值从路径
path
中删除,即执行path.removeLast()
- 路径更新:将当前节点值
- 参数:当前节点
代码
1 | /** |
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/er-cha-shu-zhong-he-wei-mou-yi-zhi-de-lu-jing-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。