Redian新闻
>
几个笑话 -- 年轻的时候不懂事
avatar
几个笑话 -- 年轻的时候不懂事# Joke - 肚皮舞运动
r*j
1
给一个binary tree,返回一个circular doubly-linked list。
不好意思,忘说了,按inorder返回。
avatar
c*k
2
在椅子下面放什么?
哪里有卖大的office mat?
谢谢
avatar
x*o
3
记得年轻的时候不懂事,跟人打架斗殴,结果被人家丢到了一个下水道里,还把井盖扣
上了,我挣扎了半天也没有把井盖打开,当时那个无助和绝望我现在还记忆犹新,渐渐
地我变的全身无力,昏睡过去,直到后半夜的时候,我的眼前出现了一线光线,然后井
盖突然被打开了,我顿时兴奋了起来,以为家人找到我了,我用尽最后一点力气,爬出
了暗无天日的下水道,可那打开井盖的人,却早已消失在茫茫夜色中。直到现在我也只
是依稀地记得,他们在打开井盖的后说了一句话:”有人来了,快走!"
你!你!!居然在屎里下毒!!
凌晨5点,当第一缕阳光照进青藏线上行驶的绿皮车,严格遵循古制的操师傅就精神抖
擞地站起来,眺望着西藏。此时,从四面八方汇聚到藏区的女文青数量正在疯长,正是
采摘的好季节,操师傅必须以最快的速度赶到,因为操师傅知道,体内的弱碱性物质已
经迫不及待滴要喷薄而出了。
鹰说:我的眼睛锐利无比,人类根据我的特征创造了鹰眼一词;蜂说:我的眼睛结构复
杂无比,人类根据我的特征创造了蜂眼一词;马说:人类都他妈是傻逼
老师说18世纪有个医生诊断特别准,正确率100%。他去看病人,每看一个用手拽着患者舌
头看一下,判断个个都是伤寒热。果真每个患者都是伤寒热。后来才发现医生他是个超
级携带者,都是他传染的。。。。
朋友圈里那些求过儿童节的女性朋友们,不是哥说你,你说你们都过了那么多年性生活
了,还好意思过儿童节吗?
朋友和女友交往了五年都没破她的处,我们笑他是不是不行,他说了一句话:“我现在
什么都没有,我怕以后娶她的不是我,她老公嫌弃她不是处,欺负她。我们听完朋友说
的这句话,顿时流下了感动的泪水。拨通了他女友的电话:今晚ktv群p取消,哥几个一
人凑点钱你拿着把膜修复了吧!还有肛裂也治一治,好好跟他相处,他是个好人...
不知哪个手贱的拍了我在KTV抱着公主喝花酒的照片发给我老婆,她像疯了一样要跟我
拼命,我机智地跟她解释:“这个是我女同学!”她冷静地思考了一下,还是有些不信
,问道:“真的没花钱?”
小王一直暗恋同寝室的小李,那天小王回到寝室发现小李正在看“同志片”。小王按耐
不住欲火和小李深情的接吻了,激吻一会,小王马上脱得一丝不挂,撅起屁股等着。。
。过了一会发现没动静,回头一看,小李也撅着屁股等他呢!!!
【PhD的心电图】平时的心跳:__/______/_______ ,见导师汇报进展时的心跳:__/___/
_/__/_/_ ,做学术报告时的心跳:_/_/_/_/_/_/_ ,打开邮箱收到编期刊邮件时的心跳
昨天看《X战警》,看见一喷火的、一喷水的、一个千里眼、一个能变成铜头铁臂的、
一个变身后力大无穷的,直到范冰冰的蛇精脸出现,我才知道葫芦娃在国际大银幕上团
聚了。后来他们告诉我,上一部还有隐身娃
同学去逛街,路上玩着手机,遇到个聋哑人,拿着残疾证问他要钱,同学没仔细看,以
为是发传单的,直接接过来他的残疾证就走了,走了好远那个聋哑人大叫,尼玛别走。
这几天太冷了。昨晚逛街时看到一位摆摊的老奶奶,寒风瑟瑟,生意冷清,她蜷缩在一
把小凳子上,背影佝偻,看上去像是笼着袖子在发抖,让人有点心酸……结果走近发现
她捧着一台Ipad在起劲儿地玩Flappy Bird……
妻与妾相争,丈夫爱惜妾而故意骂说:“不如把你杀了,省得在恼她。”妾听见丈夫这
样说,就哭着逃回房里,丈夫拿着刀追赶。老婆以为丈夫真的去杀妾,随后追去看,结
果看见二人正在行房。老婆就说:“大声哭到,你要是这样杀,还是先杀了我吧!”
在电影院看电影,感觉裤子动了一下,一摸钱包丢了! 我转身迅速扫了一眼后面,目
光锁定在一个人身上! 我大吼:“你妈的!把钱包还给我!” 他说:“你凭什么这么
说?” 我说:“是因为他妈的整个电影院就我们两个人!”
发现女朋友出轨了。打电话问她在哪里,她说和她哥哥在一起,但是她哥哥明明在我怀
里。
问荷兰同事是否学会了在中国怎么过马路?他说:Yes, just keep walking
你知道嘛中国是如此的自由派,他们在一千年以前就有黑人最高法院大法官了。
老公看完新闻对媳妇说: "北京一快递员每天送200个左右快递,猝死。" 媳妇说:
"这么年轻就死了,太可怜了。" 老公回头, 语重心长地对正在网购的媳妇说: "
没有买卖,就没有杀害。"
“这个字你笔画顺序不对,以后学五笔打字的话会有问题。”自习室里我用温柔的声音
对坐在旁边的女神解释。女神抬起头看着我的眼睛,说了一句“爱你”。我瞬间脑补与
女神烛光晚餐海誓山盟大操大办恩恩爱爱的幸福画面,“什么事儿了”女神说完埋头继
续。
中午吃黄焖鸡中。旁边一对男女看似刚认识,老板来收钱,男方给,女方要求分开付。
老板一把接过男的钱,还说美女你下次和他再来吃你付就好了嘛~我看见那男的默默用
眼神给老板点了个赞!双赢啊!老板真会做人,难怪生意这么好!
金枪鱼、木须肉、水煮鱼、火焰虾、土豆泥 -- 五行宴
刚刚听到一哥们唱《爸爸去哪儿》把我笑死了."爸爸~爸爸~爱小泽玛利亚~"
^^^^^^^^^^^^^^^^^^^^^^^^^^
对于“改革开放30多年来中国取得的成就”和“党的领导”的关系,习总和一部分群众
是有分歧的。习总认为是Because of的关系(正是因为党的领导,所以才……),一部
分群众认为是despite的关系(尽管有党的领导,依然还……)。
直观认识上海的房价:某位同事在虹口区花了150万人民币买了一间38平米违章搭建的
没有窗户的阁楼。
看了孔庆东微博截屏,不禁慨叹:连五毛领袖都说当时百姓惨死了,可是推上至今仍有
人说没有开枪。这个世界太疯狂了,耗子给猫当伴娘了。
【31个省份高考新政出炉 京浙川品德分可加20】此轮大规模调整主要集中在体育、奥
赛等缩减项目及降低分值。多地奥赛获奖者剔出保送行列,甚至加分名单;与此形成强
烈反差的是,13个省份加分项目中提及思想品德及见义勇为,北京、浙江、四川三省市
甚至奖励加20分(法制晚报)
avatar
S*w
4
详细点?

【在 r******j 的大作中提到】
: 给一个binary tree,返回一个circular doubly-linked list。
: 不好意思,忘说了,按inorder返回。

avatar
F*y
5
我直接放area rug,正好有一条比较残的没打算放餐厅

【在 c*******k 的大作中提到】
: 在椅子下面放什么?
: 哪里有卖大的office mat?
: 谢谢

avatar
k*i
6
楼下有小JJ吗?
avatar
h*d
7
什么order?
recursion传一个previous_node
根据题目要求的order traverse
每次把current_node->prev指向previous_node,previous_node->next指向current_
node

【在 r******j 的大作中提到】
: 给一个binary tree,返回一个circular doubly-linked list。
: 不好意思,忘说了,按inorder返回。

avatar
c*o
8
上套
avatar
H*7
9
楼下没有小JJ
avatar
s*r
10
这题不是F家经典题吗。网上很多了。
avatar
t*n
11
前几天附近有一家波斯地毯关门大吉,打折,看了一下,尼玛放在living room里面的
rug 折扣后都要近一万美刀。
avatar
wy
12
第一个没有看明白

【在 x****o 的大作中提到】
: 记得年轻的时候不懂事,跟人打架斗殴,结果被人家丢到了一个下水道里,还把井盖扣
: 上了,我挣扎了半天也没有把井盖打开,当时那个无助和绝望我现在还记忆犹新,渐渐
: 地我变的全身无力,昏睡过去,直到后半夜的时候,我的眼前出现了一线光线,然后井
: 盖突然被打开了,我顿时兴奋了起来,以为家人找到我了,我用尽最后一点力气,爬出
: 了暗无天日的下水道,可那打开井盖的人,却早已消失在茫茫夜色中。直到现在我也只
: 是依稀地记得,他们在打开井盖的后说了一句话:”有人来了,快走!"
: 你!你!!居然在屎里下毒!!
: 凌晨5点,当第一缕阳光照进青藏线上行驶的绿皮车,严格遵循古制的操师傅就精神抖
: 擞地站起来,眺望着西藏。此时,从四面八方汇聚到藏区的女文青数量正在疯长,正是
: 采摘的好季节,操师傅必须以最快的速度赶到,因为操师傅知道,体内的弱碱性物质已

avatar
t*r
13
如何 circular?
不太懂啊。
avatar
c*o
14
纯手工的羊毛地毯当然要这么跪

【在 t*******n 的大作中提到】
: 前几天附近有一家波斯地毯关门大吉,打折,看了一下,尼玛放在living room里面的
: rug 折扣后都要近一万美刀。

avatar
b*p
15
lol
avatar
I*s
16
简单:
TreeNode * convert(TreeNode * root) {
if (! root) return NULL;
TreeNode * head = NULL, * tail = NULL;
stack s;
TreeNode * n = root;
while (1) {
while (n) {
s.push(n);
n = n->left;
}
if (s.empty()) {
if (head) {
head->left = tail;
tail->right = head;
}
break;
}
else {
TreeNode * tmp = s.top();
s.pop();
n = tmp->right;

cout << tmp->val << endl;
append(tmp, head, tail);
}
}

return head;
}
void append(TreeNode * t, TreeNode *& head, TreeNode *& tail) {
if (head == NULL) {
head = tail = t;
t->left = t->right = NULL;
}
else {
tail->right = t;
t->left = tail;
t->right = NULL;
tail = t;
}
}
avatar
y*j
17
啥都不放,磨烂了refinish
avatar
T*e
18
偷井盖的

【在 wy 的大作中提到】
: 第一个没有看明白
avatar
r*j
19
感觉java不能这么搞。按值传参,给pre新的reference没用。

【在 h**d 的大作中提到】
: 什么order?
: recursion传一个previous_node
: 根据题目要求的order traverse
: 每次把current_node->prev指向previous_node,previous_node->next指向current_
: node

avatar
p*p
20
bso师母

【在 y***j 的大作中提到】
: 啥都不放,磨烂了refinish
avatar
T*e
21
儿童节那个不错

【在 x****o 的大作中提到】
: 记得年轻的时候不懂事,跟人打架斗殴,结果被人家丢到了一个下水道里,还把井盖扣
: 上了,我挣扎了半天也没有把井盖打开,当时那个无助和绝望我现在还记忆犹新,渐渐
: 地我变的全身无力,昏睡过去,直到后半夜的时候,我的眼前出现了一线光线,然后井
: 盖突然被打开了,我顿时兴奋了起来,以为家人找到我了,我用尽最后一点力气,爬出
: 了暗无天日的下水道,可那打开井盖的人,却早已消失在茫茫夜色中。直到现在我也只
: 是依稀地记得,他们在打开井盖的后说了一句话:”有人来了,快走!"
: 你!你!!居然在屎里下毒!!
: 凌晨5点,当第一缕阳光照进青藏线上行驶的绿皮车,严格遵循古制的操师傅就精神抖
: 擞地站起来,眺望着西藏。此时,从四面八方汇聚到藏区的女文青数量正在疯长,正是
: 采摘的好季节,操师傅必须以最快的速度赶到,因为操师傅知道,体内的弱碱性物质已

avatar
z*m
22
先生成DLL,然后把头尾相连

【在 t**r 的大作中提到】
: 如何 circular?
: 不太懂啊。

avatar
l*s
23
啥都不放,直接用,享受的就是木地板
如果想美化家园,用silk 的地毯比较豪华,不同角度不同的光泽。。。
avatar
f*y
24
偷井盖的,这有啥不好懂的

【在 wy 的大作中提到】
: 第一个没有看明白
avatar
r*j
25
没有看到比较好的java solution呢。

【在 s**********r 的大作中提到】
: 这题不是F家经典题吗。网上很多了。
avatar
y*j
26
师母就这么点儿优点,要充分利用。

【在 p*****p 的大作中提到】
: bso师母
avatar
r*g
27
讽刺河南人的。 应该有个“中”

【在 wy 的大作中提到】
: 第一个没有看明白
avatar
r*j
28
可以用recursion,不用stack吗?

【在 I**********s 的大作中提到】
: 简单:
: TreeNode * convert(TreeNode * root) {
: if (! root) return NULL;
: TreeNode * head = NULL, * tail = NULL;
: stack s;
: TreeNode * n = root;
: while (1) {
: while (n) {
: s.push(n);
: n = n->left;

avatar
t*e
29
真有吗,
没见过。

【在 l**s 的大作中提到】
: 啥都不放,直接用,享受的就是木地板
: 如果想美化家园,用silk 的地毯比较豪华,不同角度不同的光泽。。。

avatar
l*t
30
动物的眼睛看不明白
难道不是“鸡眼”不乐意吗?
avatar
r*j
31
可以用recursion,不用stack吗?感觉stack的解法不太好理解。。。

【在 I**********s 的大作中提到】
: 简单:
: TreeNode * convert(TreeNode * root) {
: if (! root) return NULL;
: TreeNode * head = NULL, * tail = NULL;
: stack s;
: TreeNode * n = root;
: while (1) {
: while (n) {
: s.push(n);
: n = n->left;

avatar
l*s
32
silk +wool 很常见,价格很大众,也可以从不同角度看到不同光泽
silk 挺贵的,比较薄

【在 t*****e 的大作中提到】
: 真有吗,
: 没见过。

avatar
M*n
33
你分别google image一下 马眼 和 鸡眼

【在 l******t 的大作中提到】
: 动物的眼睛看不明白
: 难道不是“鸡眼”不乐意吗?

avatar
I*s
34
用stack的是根据Binary Tree的iterative inorder traversal.
Recursive 版本如下:
TreeNode * convert(TreeNode * root) {
if (! root) return NULL;
TreeNode * head = NULL, * tail = NULL, * prev = NULL;
get(root, head, tail, prev);
if (head) {
head->left = tail;
tail->right = head;
}
return head;
}
void get(TreeNode * root, TreeNode *& head, TreeNode *& tail, TreeNode *
& prev) {
if (! root) return;
get(root->left, head, tail, prev);
if (! prev) {
head = tail = root;
}
else {
tail->right = root;
root->left = tail;
tail = root;
}
prev = root;
get(root->right, head, tail, prev);
}

【在 r******j 的大作中提到】
: 可以用recursion,不用stack吗?感觉stack的解法不太好理解。。。
avatar
l*s
35
东西是为人服务的
avatar
l*y
36
强拆了是不是150万就打水漂了?
avatar
r*7
37
leetcode上就有吧,inorder visit,把prev->right设置成cur,cur->left = prev,
然后在prev = NULL的时候设置curr为head,不停的将head->left设置为cur

【在 r******j 的大作中提到】
: 给一个binary tree,返回一个circular doubly-linked list。
: 不好意思,忘说了,按inorder返回。

avatar
n*a
38
跟俺家一个路线。
刚弄好的新地板,没三天,已经被俩个儿子多处划伤,而且疤痕清晰可见,
我本来还在选地毯,一看都这样了,拉倒吧,等娃大了直接refinish好了。

【在 y***j 的大作中提到】
: 啥都不放,磨烂了refinish
avatar
T*e
39
难说。闹一下说不定可以拿300万的拆迁费

【在 l****y 的大作中提到】
: 强拆了是不是150万就打水漂了?
avatar
r*j
40
恩,是,用stack其实就是binary tree的iterative inorder traversal,但是觉得很
难解释这个解法,很难想到,能写出来也是半背半写的。恩你的recursive版本我明白
,可是在java里怎么给pre赋值没用吧。请指教。

【在 I**********s 的大作中提到】
: 用stack的是根据Binary Tree的iterative inorder traversal.
: Recursive 版本如下:
: TreeNode * convert(TreeNode * root) {
: if (! root) return NULL;
: TreeNode * head = NULL, * tail = NULL, * prev = NULL;
: get(root, head, tail, prev);
: if (head) {
: head->left = tail;
: tail->right = head;
: }

avatar
S*s
42
高考加分那事要是真的,会催生一个用刑期换20分的产业链吧。

【在 x****o 的大作中提到】
: 记得年轻的时候不懂事,跟人打架斗殴,结果被人家丢到了一个下水道里,还把井盖扣
: 上了,我挣扎了半天也没有把井盖打开,当时那个无助和绝望我现在还记忆犹新,渐渐
: 地我变的全身无力,昏睡过去,直到后半夜的时候,我的眼前出现了一线光线,然后井
: 盖突然被打开了,我顿时兴奋了起来,以为家人找到我了,我用尽最后一点力气,爬出
: 了暗无天日的下水道,可那打开井盖的人,却早已消失在茫茫夜色中。直到现在我也只
: 是依稀地记得,他们在打开井盖的后说了一句话:”有人来了,快走!"
: 你!你!!居然在屎里下毒!!
: 凌晨5点,当第一缕阳光照进青藏线上行驶的绿皮车,严格遵循古制的操师傅就精神抖
: 擞地站起来,眺望着西藏。此时,从四面八方汇聚到藏区的女文青数量正在疯长,正是
: 采摘的好季节,操师傅必须以最快的速度赶到,因为操师傅知道,体内的弱碱性物质已

avatar
I*s
43
java里prev, head, tail改成class member variable.

【在 r******j 的大作中提到】
: 恩,是,用stack其实就是binary tree的iterative inorder traversal,但是觉得很
: 难解释这个解法,很难想到,能写出来也是半背半写的。恩你的recursive版本我明白
: ,可是在java里怎么给pre赋值没用吧。请指教。

avatar
y*n
44
有那种小垫圈可以粘在椅子脚上。
avatar
T*e
45
思想品德,不一定非要见义勇为。
比如你把200万借给别人,他把钱丢在大街上让你家小孩捡走交公,回头再私下还给你
180万。

【在 S*******s 的大作中提到】
: 高考加分那事要是真的,会催生一个用刑期换20分的产业链吧。
avatar
j*7
46
O(N) time, O(1) extra space
public TreeNode[] convertBST(TreeNode root) {
TreeNode head = null;
TreeNode tail = null;
TreeNode current = root;
while (current != null) {
if (current.left != null && current.left.value < current.value) {
TreeNode left = current.left;
while (left.right != null && left.right != current) {
left = left.right;
}
if (left.right == null) {
left.right = current;
current = current.left;
} else {
System.out.println(current.value);
if (head == null) {
head = current;
tail = current;
} else {
tail.right = current;
current.left = tail;
tail = current;
}
current = current.right;
}
} else {
System.out.println(current.value);
if (head == null) {
head = current;
tail = current;
} else {
tail.right = current;
current.left = tail;
tail = current;
}
current = current.right;
}
}
TreeNode[] result = new TreeNode[2];
result[0] = head;
result[1] = tail;
return result;
}
avatar
t*d
47
铺一层金箔怎么样?
avatar
z*n
48
拆迁规定:必须居住50年以上

【在 T******e 的大作中提到】
: 难说。闹一下说不定可以拿300万的拆迁费
avatar
r*j
49
给一个binary tree,返回一个circular doubly-linked list。
不好意思,忘说了,按inorder返回。
avatar
l*y
51
那非得自焚不可

【在 T******e 的大作中提到】
: 难说。闹一下说不定可以拿300万的拆迁费
avatar
S*w
52
详细点?

【在 r******j 的大作中提到】
: 给一个binary tree,返回一个circular doubly-linked list。
: 不好意思,忘说了,按inorder返回。

avatar
j*i
53
用透明胶带贴一层。破了再贴。保证20年后还是新的。不过胶带也不便宜
avatar
H*g
54
这个楼下小鸡鸡又是什么风俗?
avatar
h*d
55
什么order?
recursion传一个previous_node
根据题目要求的order traverse
每次把current_node->prev指向previous_node,previous_node->next指向current_
node

【在 r******j 的大作中提到】
: 给一个binary tree,返回一个circular doubly-linked list。
: 不好意思,忘说了,按inorder返回。

avatar
n*a
56

透明胶带那里抗得住娃乱扔玩具,咣叽咣叽叽下子就几个坑出来了。还巴西樱桃硬木头
的。亏你还是专业挖坑的呢,这个都不懂。

【在 j****i 的大作中提到】
: 用透明胶带贴一层。破了再贴。保证20年后还是新的。不过胶带也不便宜
avatar
s*r
57
这题不是F家经典题吗。网上很多了。
avatar
j*i
58
卧室穷吊死,没用过那么高级的玩意儿,瞎猜呢

【在 n***a 的大作中提到】
:
: 透明胶带那里抗得住娃乱扔玩具,咣叽咣叽叽下子就几个坑出来了。还巴西樱桃硬木头
: 的。亏你还是专业挖坑的呢,这个都不懂。

avatar
t*r
59
如何 circular?
不太懂啊。
avatar
E*w
60
切墙和天花板上,然后定期查洗
avatar
I*s
61
简单:
TreeNode * convert(TreeNode * root) {
if (! root) return NULL;
TreeNode * head = NULL, * tail = NULL;
stack s;
TreeNode * n = root;
while (1) {
while (n) {
s.push(n);
n = n->left;
}
if (s.empty()) {
if (head) {
head->left = tail;
tail->right = head;
}
break;
}
else {
TreeNode * tmp = s.top();
s.pop();
n = tmp->right;

cout << tmp->val << endl;
append(tmp, head, tail);
}
}

return head;
}
void append(TreeNode * t, TreeNode *& head, TreeNode *& tail) {
if (head == NULL) {
head = tail = t;
t->left = t->right = NULL;
}
else {
tail->right = t;
t->left = tail;
t->right = NULL;
tail = t;
}
}
avatar
l*h
62
hd 有卖点在各种家具腿下的furniture pad.

【在 c*******k 的大作中提到】
: 在椅子下面放什么?
: 哪里有卖大的office mat?
: 谢谢

avatar
r*j
63
感觉java不能这么搞。按值传参,给pre新的reference没用。

【在 h**d 的大作中提到】
: 什么order?
: recursion传一个previous_node
: 根据题目要求的order traverse
: 每次把current_node->prev指向previous_node,previous_node->next指向current_
: node

avatar
z*m
65
先生成DLL,然后把头尾相连

【在 t**r 的大作中提到】
: 如何 circular?
: 不太懂啊。

avatar
d*0
66
铺 laminate.. 漂亮不怕刮。
avatar
r*j
67
没有看到比较好的java solution呢。

【在 s**********r 的大作中提到】
: 这题不是F家经典题吗。网上很多了。
avatar
r*j
68
可以用recursion,不用stack吗?

【在 I**********s 的大作中提到】
: 简单:
: TreeNode * convert(TreeNode * root) {
: if (! root) return NULL;
: TreeNode * head = NULL, * tail = NULL;
: stack s;
: TreeNode * n = root;
: while (1) {
: while (n) {
: s.push(n);
: n = n->left;

avatar
r*j
69
可以用recursion,不用stack吗?感觉stack的解法不太好理解。。。

【在 I**********s 的大作中提到】
: 简单:
: TreeNode * convert(TreeNode * root) {
: if (! root) return NULL;
: TreeNode * head = NULL, * tail = NULL;
: stack s;
: TreeNode * n = root;
: while (1) {
: while (n) {
: s.push(n);
: n = n->left;

avatar
I*s
70
用stack的是根据Binary Tree的iterative inorder traversal.
Recursive 版本如下:
TreeNode * convert(TreeNode * root) {
if (! root) return NULL;
TreeNode * head = NULL, * tail = NULL, * prev = NULL;
get(root, head, tail, prev);
if (head) {
head->left = tail;
tail->right = head;
}
return head;
}
void get(TreeNode * root, TreeNode *& head, TreeNode *& tail, TreeNode *
& prev) {
if (! root) return;
get(root->left, head, tail, prev);
if (! prev) {
head = tail = root;
}
else {
tail->right = root;
root->left = tail;
tail = root;
}
prev = root;
get(root->right, head, tail, prev);
}

【在 r******j 的大作中提到】
: 可以用recursion,不用stack吗?感觉stack的解法不太好理解。。。
avatar
r*7
71
leetcode上就有吧,inorder visit,把prev->right设置成cur,cur->left = prev,
然后在prev = NULL的时候设置curr为head,不停的将head->left设置为cur

【在 r******j 的大作中提到】
: 给一个binary tree,返回一个circular doubly-linked list。
: 不好意思,忘说了,按inorder返回。

avatar
r*j
72
恩,是,用stack其实就是binary tree的iterative inorder traversal,但是觉得很
难解释这个解法,很难想到,能写出来也是半背半写的。恩你的recursive版本我明白
,可是在java里怎么给pre赋值没用吧。请指教。

【在 I**********s 的大作中提到】
: 用stack的是根据Binary Tree的iterative inorder traversal.
: Recursive 版本如下:
: TreeNode * convert(TreeNode * root) {
: if (! root) return NULL;
: TreeNode * head = NULL, * tail = NULL, * prev = NULL;
: get(root, head, tail, prev);
: if (head) {
: head->left = tail;
: tail->right = head;
: }

avatar
I*s
73
java里prev, head, tail改成class member variable.

【在 r******j 的大作中提到】
: 恩,是,用stack其实就是binary tree的iterative inorder traversal,但是觉得很
: 难解释这个解法,很难想到,能写出来也是半背半写的。恩你的recursive版本我明白
: ,可是在java里怎么给pre赋值没用吧。请指教。

avatar
j*7
74
O(N) time, O(1) extra space
public TreeNode[] convertBST(TreeNode root) {
TreeNode head = null;
TreeNode tail = null;
TreeNode current = root;
while (current != null) {
if (current.left != null && current.left.value < current.value) {
TreeNode left = current.left;
while (left.right != null && left.right != current) {
left = left.right;
}
if (left.right == null) {
left.right = current;
current = current.left;
} else {
System.out.println(current.value);
if (head == null) {
head = current;
tail = current;
} else {
tail.right = current;
current.left = tail;
tail = current;
}
current = current.right;
}
} else {
System.out.println(current.value);
if (head == null) {
head = current;
tail = current;
} else {
tail.right = current;
current.left = tail;
tail = current;
}
current = current.right;
}
}
TreeNode[] result = new TreeNode[2];
result[0] = head;
result[1] = tail;
return result;
}
avatar
t*5
75
mark
avatar
y*e
76
根据前面的讨论写了个java的recursive的版本,iterative的再去想想,请大家指正
public class bt_circular_list{
private static TreeNode tail = null;
public static TreeNode convert(TreeNode root){
TreeNode head = root;
helper(root);
while(head.left != null){
head = head.left;
}
head.left = tail;
tail.right = head;
return head;
}

public static void helper(TreeNode root) {
if(root == null)
return;
helper(root.left);
if(tail != null){
tail.right = root;
root.left = tail;
}
tail = root;
helper(root.right);
}
}
avatar
e*a
77
class Solution {
private DLNode head = null, dlnode = null;
private void bt2dll(TreeNode tnode) {
if (tnode == null) return null;
bt2dll(tnode.left);
if (dlnode == null) {
dlnode = new DLNode(tnode.val);
head = dlnode;
} else {
dlnode.next = new DLNode(tnode.val);
dlnode.next.prev = dlnode;
dlnode = dlnode.next;
}
bt2dll(tnode.right);
}
public DLNode start(TreeNode tnode) {
bt2dll(tnode);
if (head != null) {
head.prev = dlnode;
dlnode.next = head;
}
return head;
}
}
avatar
f*n
78
最后忘记连成环了吧。

【在 e***a 的大作中提到】
: class Solution {
: private DLNode head = null, dlnode = null;
: private void bt2dll(TreeNode tnode) {
: if (tnode == null) return null;
: bt2dll(tnode.left);
: if (dlnode == null) {
: dlnode = new DLNode(tnode.val);
: head = dlnode;
: } else {
: dlnode.next = new DLNode(tnode.val);

avatar
s*3
79
我也面了这题,我答的挺好的,结果挂了。

【在 r******j 的大作中提到】
: 给一个binary tree,返回一个circular doubly-linked list。
: 不好意思,忘说了,按inorder返回。

avatar
r*j
80
你是怎么答的?recursion还是stack?

【在 s*********3 的大作中提到】
: 我也面了这题,我答的挺好的,结果挂了。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。