分别进行先序、中序和后序遍历,将遍历结果加入最终结果即可
import java.util.*;
public class Solution {
    public int[][] threeOrders (TreeNode root) {
        ArrayList<Integer> preRes = new ArrayList<>();
        ArrayList<Integer> inRes = new ArrayList<>();
        ArrayList<Integer> postRes = new ArrayList<>();
        preRes = preOrder(root,preRes);
        inRes = inOrder(root,inRes);
        postRes = postOrder(root,postRes);
        int[][] res = new int[3][];
        res[0] = preRes.stream().mapToInt(Integer::intValue).toArray();
        res[1] = inRes.stream().mapToInt(Integer::intValue).toArray();
        res[2] = postRes.stream().mapToInt(Integer::intValue).toArray();
        return res;
    }
    public ArrayList preOrder(TreeNode root,ArrayList preRes){
        if(root == null){
            return preRes;
        }
        preRes.add(root.val);
        preOrder(root.left,preRes);
        preOrder(root.right,preRes);
        return preRes;
    }
    public ArrayList inOrder(TreeNode root,ArrayList inRes){
        if(root == null){
            return inRes;
        }
        inOrder(root.left,inRes);
        inRes.add(root.val);
        inOrder(root.right,inRes);
        return inRes;
    }
    public ArrayList postOrder(TreeNode root,ArrayList postRes){
        if(root == null){
            return postRes;
        }
        postOrder(root.left,postRes);
        postOrder(root.right,postRes);
        postRes.add(root.val);
        return postRes;
    }
}