使用list存下所有结果,list/3就是节点个数,依次填入二维数组中
import java.util.*;
public class Solution {
ArrayList<Integer> list = new ArrayList<>();//存下所有结果
public void pre(TreeNode root){
if(root == null)return;
list.add(root.val);
pre(root.left);
pre(root.right);
}
public void mid(TreeNode root){
if(root == null)return;
mid(root.left);
list.add(root.val);
mid(root.right);
}
public void post(TreeNode root){
if(root == null)return;
post(root.left);
post(root.right);
list.add(root.val);
}
public int[][] threeOrders (TreeNode root) {
// write code here
pre(root);
mid(root);
post(root);
int[][] ans = new int[3][list.size()/3];
int index = 0;
for(int i = 0; i < 3;i++){
for(int j = 0;j<ans[0].length;j++){
ans[i][j]=list.get(index++);
}
}
return ans;
}
}