a*e
2 楼
最近几天的少得可怜的准备时间都在看这个。60多行程序改个地方就通不过了。区别仅
在于
while(1)
{
r.push_back(p->val);
if(p==from)
break;
p = p->right;
}
不能改成
while(p!=from)
{
r.push_back(p->val);
p = p->right;
}
哎,可能还是因为这个算法不是自己想出来的,总是糊涂。
偶尔说起来,别人说那种属于比较偏的题了,如果问道肯定是存心要fail某人。
就是好奇有没有人真被问到。
能通过OJ的,
void reverse(TreeNode *from, TreeNode *to)
{
if (from==to)
return;
TreeNode *x = from, *y = from->right, *z;
while(x!=to){
z=y->right;
y->right = x;
x = y;
y = z;
}
}
void getReverse(TreeNode *from, TreeNode *to, vector &r)
{
reverse(from,to);
TreeNode *p = to;
while(1)
{
r.push_back(p->val);
if(p==from)
break;
p = p->right;
}
reverse(to,from);
}
vector postorderTraversal(TreeNode *root) {
vector ret;
if(root==NULL)
return ret;
TreeNode dump(0);
dump.left = root;
TreeNode *cur = &dump, *prev = NULL;
while(cur)
{
if (cur->left==NULL)
cur = cur->right;
else
{
prev = cur->left;
while(prev->right!=NULL&&prev->right!=cur)
prev = prev->right;
if (prev->right==NULL)
{
prev->right = cur;
cur = cur->left;
}
else
{
getReverse(cur->left,prev,ret);
prev->right = NULL;
cur = cur->right;
}
}
}
}
不能通过的
void reverse(TreeNode *from, TreeNode *to)
{
if (from==to)
return;
TreeNode *x = from, *y = from->right, *z;
while(x!=to){
z=y->right;
y->right = x;
x = y;
y = z;
}
}
void getReverse(TreeNode *from, TreeNode *to, vector &r)
{
reverse(from,to);
TreeNode *p = to;
while(p!=from)
{
r.push_back(p->val);
p = p->right;
}
reverse(to,from);
}
vector postorderTraversal(TreeNode *root) {
vector ret;
if(root==NULL)
return ret;
TreeNode dump(0);
dump.left = root;
TreeNode *cur = &dump, *prev = NULL;
while(cur)
{
if (cur->left==NULL)
cur = cur->right;
else
{
prev = cur->left;
while(prev->right!=NULL&&prev->right!=cur)
prev = prev->right;
if (prev->right==NULL)
{
prev->right = cur;
cur = cur->left;
}
else
{
getReverse(cur->left,prev,ret);
prev->right = NULL;
cur = cur->right;
}
}
}
}
在于
while(1)
{
r.push_back(p->val);
if(p==from)
break;
p = p->right;
}
不能改成
while(p!=from)
{
r.push_back(p->val);
p = p->right;
}
哎,可能还是因为这个算法不是自己想出来的,总是糊涂。
偶尔说起来,别人说那种属于比较偏的题了,如果问道肯定是存心要fail某人。
就是好奇有没有人真被问到。
能通过OJ的,
void reverse(TreeNode *from, TreeNode *to)
{
if (from==to)
return;
TreeNode *x = from, *y = from->right, *z;
while(x!=to){
z=y->right;
y->right = x;
x = y;
y = z;
}
}
void getReverse(TreeNode *from, TreeNode *to, vector
{
reverse(from,to);
TreeNode *p = to;
while(1)
{
r.push_back(p->val);
if(p==from)
break;
p = p->right;
}
reverse(to,from);
}
vector
vector
if(root==NULL)
return ret;
TreeNode dump(0);
dump.left = root;
TreeNode *cur = &dump, *prev = NULL;
while(cur)
{
if (cur->left==NULL)
cur = cur->right;
else
{
prev = cur->left;
while(prev->right!=NULL&&prev->right!=cur)
prev = prev->right;
if (prev->right==NULL)
{
prev->right = cur;
cur = cur->left;
}
else
{
getReverse(cur->left,prev,ret);
prev->right = NULL;
cur = cur->right;
}
}
}
}
不能通过的
void reverse(TreeNode *from, TreeNode *to)
{
if (from==to)
return;
TreeNode *x = from, *y = from->right, *z;
while(x!=to){
z=y->right;
y->right = x;
x = y;
y = z;
}
}
void getReverse(TreeNode *from, TreeNode *to, vector
{
reverse(from,to);
TreeNode *p = to;
while(p!=from)
{
r.push_back(p->val);
p = p->right;
}
reverse(to,from);
}
vector
vector
if(root==NULL)
return ret;
TreeNode dump(0);
dump.left = root;
TreeNode *cur = &dump, *prev = NULL;
while(cur)
{
if (cur->left==NULL)
cur = cur->right;
else
{
prev = cur->left;
while(prev->right!=NULL&&prev->right!=cur)
prev = prev->right;
if (prev->right==NULL)
{
prev->right = cur;
cur = cur->left;
}
else
{
getReverse(cur->left,prev,ret);
prev->right = NULL;
cur = cur->right;
}
}
}
}
C*i
3 楼
欧盟潜在的债务危机,中国当前的发展减缓,加上美国天天叫嚣的金融改革。。每一颗
的引爆都会再次带来一次更加猛烈的经济危机。道指能否再回到一万以下,可能性不能
说没有。Everything is possible! 记得当年凯文加内特夺得自己第一枚总冠军戒指
的时候,曾泪流满面地说过这样一句话。征战了NBA十多年的他估计也说不清这是奇迹
,运气或者实力的体现吧。
回到股票市场来说,全球股市崩盘,世界局势动荡是无时无刻不存在的,所以不能完全
排除这种危险的发生。但是换一种思路,如果发生了,我们会面对什么样的世界?会不
会像今天的希腊,泰国发生大规模的游行甚至暴乱?是不是每个人都会担心自己的工作
?每个家庭是不是都会担心是否入不敷出甚至妻离子散?会不会出现战乱?我想每个人
都不会希望这样的事情发生。目前股票的下跌空间是和政府的救助能力有很大空间的,
昨天Fredie Mac又传出需要10.6B的政府援助,不知道是否能够通过。美国的财政赤字
不允许Feds印刷更多的钞票来救市。市场经济就应该让市场自救。当市场发现没有任何
依赖的时候,才会使经济重新发展的起点。
我们现在经历的经济危机和上个世纪3
的引爆都会再次带来一次更加猛烈的经济危机。道指能否再回到一万以下,可能性不能
说没有。Everything is possible! 记得当年凯文加内特夺得自己第一枚总冠军戒指
的时候,曾泪流满面地说过这样一句话。征战了NBA十多年的他估计也说不清这是奇迹
,运气或者实力的体现吧。
回到股票市场来说,全球股市崩盘,世界局势动荡是无时无刻不存在的,所以不能完全
排除这种危险的发生。但是换一种思路,如果发生了,我们会面对什么样的世界?会不
会像今天的希腊,泰国发生大规模的游行甚至暴乱?是不是每个人都会担心自己的工作
?每个家庭是不是都会担心是否入不敷出甚至妻离子散?会不会出现战乱?我想每个人
都不会希望这样的事情发生。目前股票的下跌空间是和政府的救助能力有很大空间的,
昨天Fredie Mac又传出需要10.6B的政府援助,不知道是否能够通过。美国的财政赤字
不允许Feds印刷更多的钞票来救市。市场经济就应该让市场自救。当市场发现没有任何
依赖的时候,才会使经济重新发展的起点。
我们现在经历的经济危机和上个世纪3
A*X
6 楼
所有这一切,背后有一个黑手在推动,它要推向何处?很可能是WWIII,要不就是2012
【在 C*******i 的大作中提到】
: 欧盟潜在的债务危机,中国当前的发展减缓,加上美国天天叫嚣的金融改革。。每一颗
: 的引爆都会再次带来一次更加猛烈的经济危机。道指能否再回到一万以下,可能性不能
: 说没有。Everything is possible! 记得当年凯文加内特夺得自己第一枚总冠军戒指
: 的时候,曾泪流满面地说过这样一句话。征战了NBA十多年的他估计也说不清这是奇迹
: ,运气或者实力的体现吧。
: 回到股票市场来说,全球股市崩盘,世界局势动荡是无时无刻不存在的,所以不能完全
: 排除这种危险的发生。但是换一种思路,如果发生了,我们会面对什么样的世界?会不
: 会像今天的希腊,泰国发生大规模的游行甚至暴乱?是不是每个人都会担心自己的工作
: ?每个家庭是不是都会担心是否入不敷出甚至妻离子散?会不会出现战乱?我想每个人
: 都不会希望这样的事情发生。目前股票的下跌空间是和政府的救助能力有很大空间的,
【在 C*******i 的大作中提到】
: 欧盟潜在的债务危机,中国当前的发展减缓,加上美国天天叫嚣的金融改革。。每一颗
: 的引爆都会再次带来一次更加猛烈的经济危机。道指能否再回到一万以下,可能性不能
: 说没有。Everything is possible! 记得当年凯文加内特夺得自己第一枚总冠军戒指
: 的时候,曾泪流满面地说过这样一句话。征战了NBA十多年的他估计也说不清这是奇迹
: ,运气或者实力的体现吧。
: 回到股票市场来说,全球股市崩盘,世界局势动荡是无时无刻不存在的,所以不能完全
: 排除这种危险的发生。但是换一种思路,如果发生了,我们会面对什么样的世界?会不
: 会像今天的希腊,泰国发生大规模的游行甚至暴乱?是不是每个人都会担心自己的工作
: ?每个家庭是不是都会担心是否入不敷出甚至妻离子散?会不会出现战乱?我想每个人
: 都不会希望这样的事情发生。目前股票的下跌空间是和政府的救助能力有很大空间的,
A*i
8 楼
两年前有一个朋友被yelp问到,这是我唯一一次听说有人被问到这个算法的。
那也是第一次听说有这么个玩意儿存在
那也是第一次听说有这么个玩意儿存在
i*t
13 楼
这难道不属于刁难人?
b*g
15 楼
Morris本来就挺复杂了.Morris Poster Order还是三种顺序访问里最难的一个.这个面
试考的话实在太变态了.面试官自己能半小时内写出来就很不错了...
试考的话实在太变态了.面试官自己能半小时内写出来就很不错了...
h*d
17 楼
it does not hurt to study if you have time.
M*a
18 楼
我老想了一下好像morris traverse只能pre/in order,不能post order把,当然不排
除你自己想个post order的traverse但是估计也更morris差很远了吧。
除你自己想个post order的traverse但是估计也更morris差很远了吧。
相关阅读