题解 | #实现二叉树先序,中序和后序遍历#
实现二叉树先序,中序和后序遍历
http://www.nowcoder.com/practice/a9fec6c46a684ad5a3abd4e365a9d362
记录
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整型二维数组 */ List<Integer> pre = new ArrayList<Integer>(); List<Integer> mid = new ArrayList<Integer>(); List<Integer> beh = new ArrayList<Integer>(); public int[][] threeOrders (TreeNode root) { // write code here preOrder(root); midOrder(root); behOrder(root); int[][] res = new int[3][pre.size()]; for (int i = 0; i < pre.size(); i++){ res[0][i] = pre.get(i); res[1][i] = mid.get(i); res[2][i] = beh.get(i); } return res; } public void preOrder(TreeNode root){ if (root == null){ return; } pre.add(root.val); preOrder(root.left); preOrder(root.right); } public void midOrder(TreeNode root){ if (root == null){ return; } midOrder(root.left); mid.add(root.val); midOrder(root.right); } public void behOrder(TreeNode root){ if (root == null){ return; } behOrder(root.left); behOrder(root.right); beh.add(root.val); } }