在lintcode上的练习题:lintcode:二叉树的路径和
题目:给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。
一个有效的路径,指的是从根节点到叶节点的路径。
您在真实的面试中是否遇到过这个题? Yes
样例
给定一个二叉树,和 目标值 = 5:
1
/ \
2 4
/ \
2 3
返回:
[
[1, 2, 2],
[1, 4]
]
思路:首先可以想到解决这道题需要用到递归,并且在每一次递归时,需要获取每个节点的值,将这些节点的值相加,如果和等于给定的路径值,则返回这个结果集合。需要输出的便是这些结果集合。
重点在于怎么将这些结果集合单独保存,加入最后的结果结合当中,我们可以利用List 和 Stack来实现.
1.先建立一个全局的结果集合List