一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 650|回复: 16
收起左侧

[CareerCup] 【第三轮】7.7-7.13 CareerCup 4.4

[复制链接] |试试Instant~ |关注本帖
wrj5518 发表于 2014-7-6 20:52:02 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
4.4 Given a binary tree, design an algorithm which creates a linked list of all the nodes at each depth (e.g., if you have a tree with depth D,you'll have D linked lists).

回复解法可以按照以下格式来
【解题思路】
【时间复杂度】
【空间复杂度】
【gist link】
---------------optional,如果觉得test case比较好,欢迎写出来分享----------------------
【test case】


Notice:
1、记得在程序注释中表明自己算法的时间、空间复杂度
2、代码难懂之处加注释
3、每道题目有对应的帖子,除了贴解法,欢迎讨论,集思广益
4、任何未尽之处,欢迎回报名帖提问,我会进一步作出修改。



grassgigi 发表于 2014-7-8 10:12:08 | 显示全部楼层
【解题思路】
BFS -  level order traversing the tree

【时间复杂度】
O(N)

【空间复杂度】
O(N)

【gist link】
https://gist.github.com/chrislukkk/15bb4a11c3c4872d0e6a

binray tree & tree builder:
https://gist.github.com/chrislukkk/2a1f825b8e924ea773e8
回复 支持 反对

使用道具 举报

donnice 发表于 2014-7-11 06:29:27 | 显示全部楼层
【解题思路】先通过遍历每一个节点来判断它们的深度,再把相同深度的node们add进一个linkedlist。要注意高度差不等于深度,因为一棵树的高度是指比较长的分叉的高度,而如果任意左右两叉高度不等,用高度的概念代替深度会出现错误。
【时间复杂度】O(N)
【空间复杂度】O(N)
【gist】
https://github.com/donnice/donnice/blob/master/Q4_4
【Test case】
                       5                                                               
              2                  8                              
        1          4       7                                          
              3         6   
回复 支持 反对

使用道具 举报

圆梦梦剧场 发表于 2014-7-11 23:27:01 | 显示全部楼层
【解题思路】
BFS


【时间复杂度】
O(n)


【空间复杂度】
O(n)


【gist link】
https://gist.github.com/happyWinner/d0c2b19118c39aeab11e

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

bitcpf 发表于 2014-7-12 00:26:50 | 显示全部楼层
【解题思路】BFS tell the depth of each node, add them to a linkedlist, and pull them out according to the layer
【时间复杂度】O(N)
【空间复杂度】O(N)
【gist】https://gist.github.com/bitcpf/bdf67403863da2e86de2
回复 支持 反对

使用道具 举报

头像被屏蔽
serolins 发表于 2014-7-12 04:46:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Neal 发表于 2014-7-12 13:14:55 | 显示全部楼层
【解题思路】Transverse the tree by layer
【时间复杂度】O(N)
【空间复杂度】O(N)
【gist】https://gist.github.com/nealhu/639b16c2560d62e78fdf
回复 支持 反对

使用道具 举报

ivycheung1208 发表于 2014-7-13 04:50:32 | 显示全部楼层
本帖最后由 ivycheung1208 于 2014-7-12 17:36 编辑

【解题思路】
1. get height of the tree, create an array of linked links with size height, recursively traverse the tree and push nodes into corresponding layer of list.
2. similar with 1 but use vector to hold the lists instead of array, do not need to know the height of tree ahead
3. BFS: create each level (exempt the first one) with all children of the nodes from the previous level
【时间复杂度】
O(N)
【空间复杂度】
O(N)
【gist link】
https://gist.github.com/d1c9fb4b155c2c502c76



回复 支持 反对

使用道具 举报

兰橘清檬 发表于 2014-7-13 09:19:11 | 显示全部楼层
【解题思路】
level order traversal
【时间复杂度】
O(N)
【空间复杂度】
O(N)
【gist】
https://gist.github.com/JoyceeLee/950b1246427d76a419ed
回复 支持 反对

使用道具 举报

HiLen 发表于 2014-7-13 11:04:49 | 显示全部楼层
【解题思路】BFS 设置节点属性dep 表示当前节点的深度,TreeNode Next属性表示更改后当前节点下一个节点
BFS 访问二叉树,根节点的dep为1,记录当前深度curdepth;
如果curdepth不等于当前节点的dep说明进入下一层,当前节点是该层头结点加入到list
访问当前节点左子右节点设置左右节点深度
【时间复杂度】O(n)
【空间复杂度】因为每个节点都多了一个Next属性,算作 O(n)
【gist link】https://gist.github.com/Hailen/3a23b7ad2d10e7da5b24
---------------OPTional,如果觉得test case比较好,欢迎写出来分享----------------------
【test case】  
    2
   / \
  9  10
    /  \
   11   7
回复 支持 反对

使用道具 举报

wilbert 发表于 2014-7-14 06:00:07 | 显示全部楼层
【解题思路】
Level Order Traversal
【时间复杂度】
O(N)
【空间复杂度】
O(N)
【gist link】
https://gist.github.com/iwilbert/656493ac191d0a3d6abe
回复 支持 反对

使用道具 举报

wilbert 发表于 2014-7-14 06:00:15 | 显示全部楼层
【解题思路】
Level Order Traversal
【时间复杂度】
O(N)
【空间复杂度】
O(N)
【gist link】
https://gist.github.com/iwilbert/656493ac191d0a3d6abe
回复 支持 反对

使用道具 举报

jyh橘子 发表于 2014-7-16 05:41:29 | 显示全部楼层
【解题思路】
1.  modified pre_order traversal, recursive method
2. BTS
【时间复杂度】
1. O(N)
2. O(N)
【空间复杂度】
1. O(N)    + O(lgN)for recursion
2. O(N)
【gist link】
https://gist.github.com/jyhjuzi/f8cfddb8a198180d17f9
回复 支持 反对

使用道具 举报

林微熙 发表于 2014-7-16 06:21:23 | 显示全部楼层
【解题思路】BFS
【时间复杂度】O(N)
【空间复杂度】O(N)
【gist link】https://gist.github.com/hilda8519/d88070153f559a4d5c47
回复 支持 反对

使用道具 举报

renli3000 发表于 2014-7-18 05:34:26 | 显示全部楼层
【解题思路】简单暴力的BFS + 双queue存储, 和leetcode上一道题类似
【时间复杂度】O(N)
【空间复杂度】O(N)
【gist link】https://gist.github.com/Noahsark/95b8e7ecfc5b21e14923
回复 支持 反对

使用道具 举报

tonygxxx1212 发表于 2014-7-19 22:25:31 | 显示全部楼层
【解题思路】BFS - list of list to store, no need for queue and visit flag (binary tree has no circle)
【时间复杂度】O(N)
【空间复杂度】O(N)
【gist link】https://gist.github.com/xun-gong/3014fdabc864b4b2302e
回复 支持 反对

使用道具 举报

jason51122 发表于 2014-7-27 12:02:12 | 显示全部楼层
【解题思路】Level order traversal
【时间复杂度】O(N)
【空间复杂度】O(N)
【gist link】https://gist.github.com/jason51122/f22ed431db4a7dd8fbf3
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-9 12:11

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表