题目:输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径。
例如:输入整数22和如下二元树
10
/ /
5 12
/ /
4 7
/
3
则打印出三条路径:10, 12和10, 5, 7和10, 5, 4, 3。
题目来源于:http://topic.youkuaiyun.com/u/20101011/16/2befbfd9-f3e4-41c5-bb31-814e9615832e.html
思路一:
首先看到这样的问题的时候,我最先的想法是用前序遍历该二叉树,遍历的过程中不断的记录当前节点和以前走过路径的和,当和等于我们输入的值的时候就是我们所要求的合适路径,如果大于的话就剪枝,小于的话就不断的往下递归。
代码如下: