一、题目内容
二、题解
解法1:
思路
同时打印前中后序,通过递归可以一次全部打印,如果递归无法满足时间长度,则可以通过栈分别实现
代码
public class Solution {/**** @param root TreeNode类 the root of binary tree* @return int整型二维数组*/public int[][] threeOrders (TreeNode root) {// write code hereList<Integer> preOrder = new ArrayList<>();List<Integer> inOrder = new ArrayList<>();List<Integer> postOrder = new ArrayList<>();doThreeOrders(root,preOrder,inOrder,postOrder);int[][] res = new int[3][preOrder.size()];for(int i = 0; i < preOrder.size(); i++){res[0][i] = preOrder.get(i);res[1][i] = inOrder.get(i);res[2][i] = postOrder.get(i);}return res;}public void doThreeOrders(TreeNode root,List<Integer> preOrder,List<Integer> inOrder,List<Integer> postOrder){if(root == null){return;}preOrder.add(root.val);doThreeOrders(root.left,preOrder,inOrder,postOrder);inOrder.add(root.val);doThreeOrders(root.right,preOrder,inOrder,postOrder);postOrder.add(root.val);}}
