巧妙做法 先得到二叉树的深度 然后将数组填充进去 维护三个类变量即可

实现二叉树先序,中序和后序遍历

http://www.nowcoder.com/questionTerminal/a9fec6c46a684ad5a3abd4e365a9d362

//巧妙做法 先得到二叉树的深度 然后将数组填充进去 维护三个类变量即可

//得到二叉树的 深度 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;
}
全部评论

相关推荐

有担当的灰太狼又在摸鱼:零帧起手查看图片
点赞 评论 收藏
分享
完美的潜伏者许愿简历通过:我上表jd,请求封我做后端大将军的事,北京有消息了:竟然不许!!! 他们一定是看我没有实习,这才故意驳回我的请求!
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务