图片说明

图片说明

import java.util.*;

/*

  • public class TreeNode {
  • int val = 0;
  • TreeNode left = null;
  • TreeNode right = null;
  • }
  • /

public class Solution {
/**
*
* @param root TreeNode类 the root of binary tree
* @return int整型二维数组
*/
//private static TreeNode tn;
//private static int n = (int)Math.pow(10,6);
//private static int[] order = new int[n];
private static ArrayList<integer> first = new ArrayList<>();
private static ArrayList<integer> middle = new ArrayList<>();
private static ArrayList<integer> then = new ArrayList<>();</integer></integer></integer>

private static void firstOrder(TreeNode root){
    if(root != null){
        first.add(root.val);
        firstOrder(root.left);
        firstOrder(root.right);
    }
}
private static void middleOrder(TreeNode root){
    if(root != null){
        middleOrder(root.left);
        middle.add(root.val);
        middleOrder(root.right);
    }
}
private static void thenOrder(TreeNode root){
    if(root != null){
        thenOrder(root.left);
        thenOrder(root.right);
        then.add(root.val);
    }
}
private static final int[] toIntArray(ArrayList<Integer> arrayList){
    int[] intArray = arrayList.stream().mapToInt(Integer::intValue).toArray();
    return intArray;
}
public int[][] threeOrders (TreeNode root) {
    // write code here
    int[][] orders = new int[3][];
    firstOrder(root);
    orders[0] = toIntArray(first);
    middleOrder(root);
    orders[1] = toIntArray(middle);
    thenOrder(root);
    orders[2] = toIntArray(then);
    return orders;
}

}
图片说明