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

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

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;
}
全部评论

相关推荐

书海为家:实习是成为大厂正式员工很好的敲门砖,看您的简历中有一段实习经历,挺好的。我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己实习时做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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