参考前辈的二叉树生成
https://www.cnblogs.com/ldxsuanfa/p/10951028.html
把前辈的代码copy一下得到的是这样的二叉树。
我想让代码输出样式变为:
12345
12346
127
18910
二叉树遍历到最后一个节点时把自己和父节点都输出
static int[]s=new int[10];
static int i=0;
public static void inOrderTraverse(TreeNode root) {
if (root != null) {
s[i]= root.val;
i++;
inOrderTraverse(root.left);
i--;
i++;
inOrderTraverse(root.right);
i--;
if (root.right==null&&root.left==null)
{
for (int j = 0; j < s.length; j++) {
System.out.println(s[j]);
}
System.out.println("!!!!!!!!");
}
s[i]=0;
}
}
输出结果
1
2
3
4
5
0
0
0
0
0
!!!!!!!!
1
2
3
4
6
0
0
0
0
0
!!!!!!!!
1
2
7
0
0
0
0
0
0
0
!!!!!!!!
1
8
9
10
0
0
0
0
0
0
!!!!!!!!
最后完善一下,把0去掉,把结果放在list中
static int[]s=new int[10];
static int i=0;
static List str=new ArrayList<String>();
public static void inOrderTraverse(TreeNode root) {
if (root != null) {
s[i]= root.val;
i++;
inOrderTraverse(root.left);
i--;
i++;
inOrderTraverse(root.right);
i--;
if (root.right==null&&root.left==null)
{ StringBuffer temp=new StringBuffer();
for (int j = 0; j < s.length; j++) {
if (s[j]!=0){
temp.append(s[j]);
}
}
str.add(temp);
}
s[i]=0;
}
}
最后输出
[12345, 12346, 127, 18910]