编程题:二叉树路径和
已知二叉树结点数据值为不等于0的整数。给定一个整数K,请编写程序找出结点值之和等于K的路径。
本题的“路径”定义为二叉树中的结点序列$$v_i, …, v_j$$,序列中前一个结点是后一个结点的父结点,但**路径不一定是以根结点为起点,也不一定是以叶结点为终点**。例如K=7,对于图1所示的二叉树t,满足条件的路径有2条,即5-2和7。若没有满足条件的路径,则亦能识别。

### 输入格式:
每个测试点包含多组数据,第一行为整数T,表示数据组数。接下来T行,每行为一组用空格间隔的整数,表示带空指针信息的二叉树先根序列以及整数K,其中空指针信息用0表示。每个测试点总结点个数不超过150000,高度不超过10000。
### 输出格式:
输出为T行。对每组数据,输出一条满足条件的路径(每个数字后一个空格),若存在多条满足条件的路径,则输出最短(包含结点个数最少)者,若存在多条最短的路径,则输出最靠右下者。若不存在满足条件的路径,则输出no available path。
### 输入样例:
in
2
8 5 1 0 0 2 0 0 7 0 0 7
8 5 1 0 0 2 0 0 7 0 0 6
### 输出样例:
out
7
5 1
答案:若无答案欢迎评论
本题的“路径”定义为二叉树中的结点序列$$v_i, …, v_j$$,序列中前一个结点是后一个结点的父结点,但**路径不一定是以根结点为起点,也不一定是以叶结点为终点**。例如K=7,对于图1所示的二叉树t,满足条件的路径有2条,即5-2和7。若没有满足条件的路径,则亦能识别。

### 输入格式:
每个测试点包含多组数据,第一行为整数T,表示数据组数。接下来T行,每行为一组用空格间隔的整数,表示带空指针信息的二叉树先根序列以及整数K,其中空指针信息用0表示。每个测试点总结点个数不超过150000,高度不超过10000。
### 输出格式:
输出为T行。对每组数据,输出一条满足条件的路径(每个数字后一个空格),若存在多条满足条件的路径,则输出最短(包含结点个数最少)者,若存在多条最短的路径,则输出最靠右下者。若不存在满足条件的路径,则输出no available path。
### 输入样例:
in
2
8 5 1 0 0 2 0 0 7 0 0 7
8 5 1 0 0 2 0 0 7 0 0 6
### 输出样例:
out
7
5 1
答案:若无答案欢迎评论