1、描述:
写一个程序创建一棵二叉树,并按照一定规则,输出二叉树根节点到叶子节点的路径。
2、规则如下:
-
从最顶端的根结点,到最下面的叶子节点,计算路径通过的所有节点的和,如果与设置的某一值的相同,那么输出这条路径上的所有节点。
-
从根节点遍历树时,请按照左到右遍历,即优先访问左子树的节点。
二叉树创建规则:从上到下一层一层的,按照从左到右的顺序进行构造
输入"10,5,12,4,7"值,构造的树如下:
1) 10
2)
10
/
5
3)
10
/\
5 12
4)
10
/\
5 12
/
4
5)
10
/\
5 12
/\
4 7
针对上面的二叉树,如果当前我们设置的“路径和”为19,那么输出结果为:
10,5,4
如果有多个路径,按到左到右的顺序遍历生成的结果每行显示一个显示。例如如果当前我们设置的“路径和”为22,那么输出结果为:
10,5,7
10,12
如果没有找到路径和为设置的值的路径,输出error。
输入:
输入整数N—路径和
一行字符串,多个正整数,之间用","隔开
输出:
满足条件的二叉树路径
样例输入:
22
10,5,12,4,7
样例输出:
10,5,7
10,12
代码实现:
import java.util.Scanner;
public class NodeTree {
public static int counter = 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = Integer.valueOf(sc.nextLine());
String line = sc.nextLine();
compute(N, line);
}
public static void compute(int N, String ling) {
String[] arr = ling