//巧妙做法 先得到二叉树的深度 然后将数组填充进去 维护三个类变量即可
//得到二叉树的 深度 size
public static int getTreeSize(TreeNode node) {
if (node == null) {
return 0;
}
return 1 + getTreeSize(node.left) + getTreeSize(node.right);
}
static int pre = 0, mid = 0, post = 0;
public static int[][] threeOrders(TreeNode root) {
// write code here
int treeSize = getTreeSize(root);
int[][] ans = new int[3][treeSize];
threeTree(root, ans);
return ans;
}
public static void threeTree(TreeNode node, int[][] arr) {
if (node == null) {
return;
}
arr[0][pre++] = node.val;
threeTree(node.left, arr);
arr[1][mid++] = node.val;
threeTree(node.right, arr);
arr[2][post++] = node.val;
}
京公网安备 11010502036488号