思路:递归。
本来我的想法是写三个递归函数分别实现,但其实一个递归函数就足够了。
代码:
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整型二维数组
*/
int i = 0;
int j = 0;
int k = 0;
public int[][] threeOrders (TreeNode root) {
// write code here
int[][] res = new int[3][getSize(root)];
threeOrder(root, res);
return res;
}
public int getSize (TreeNode root) {
if (root == null) {
return 0;
}
return 1 + getSize(root.left) + getSize(root.right);
}
public void threeOrder(TreeNode root, int[][] res) {
if (root == null) {
return;
}
res[0][i ++] = root.val;
threeOrder(root.left, res);
res[1][j ++] = root.val;
threeOrder(root.right, res);
res[2][k ++] = root.val;
}
}