18ms(超过93%) 9600k(超过99%)
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> result = new ArrayList<>(); preOrder(root,result); int[][] nn = new int[3][result.size()]; int[] pre = convertListToArray(result); nn[0] = pre;
result.clear(); inOrder(root,result); int[] in = convertListToArray(result); nn[1] = in; result.clear(); postOrder(root,result); int[] post = convertListToArray(result); nn[2] = post; return nn; } public int[] convertListToArray(List<Integer> list){ int[] nn = new int[list.size()]; for(int i = 0;i<list.size();i++){ nn[i] = list.get(i); } return nn; } /** * * 先序 */ public List<Integer> preOrder(TreeNode node,List<Integer> result){ if(node == null){ return result; } int n = node.val; result.add(n); preOrder(node.left,result); preOrder(node.right,result); return result; } /** * * 中序 */ public List<Integer> inOrder(TreeNode node,List<Integer> result){ if(node == null){ return result; } int n = node.val; inOrder(node.left,result); result.add(n); inOrder(node.right,result); return result; } /** * * 后序 */ public List<Integer> postOrder(TreeNode node,List<Integer> result){ if(node == null){ return result; } int n = node.val; postOrder(node.left,result); postOrder(node.right,result); result.add(n); return result; } }