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整型二维数组 */ public int[][] threeOrders (TreeNode root) { // write code here List<Integer> p1 = new ArrayList(); preOrders(root, p1); List<Integer> p2 = new ArrayList(); middOrders(root, p2); List<Integer> p3 = new ArrayList(); postOrders(root, p3); int[][] result = new int[3][p1.size()]; for(int i=0; i<p1.size(); i++) { result[0][i] = p1.get(i); result[1][i] = p2.get(i); result[2][i] = p3.get(i); } return result; } private void preOrders (TreeNode root, List<Integer> result) { if (root!=null) { result.add(root.val); preOrders(root.left, result); preOrders(root.right, result); } } private void middOrders (TreeNode root, List<Integer> result) { if (root!=null) { middOrders(root.left, result); result.add(root.val); middOrders(root.right, result); } } private void postOrders(TreeNode root, List<Integer> result) { if (root!=null) { postOrders(root.left, result); postOrders(root.right, result); result.add(root.val); } } }