今天的OO 又没有抢到哇 :(# Fashion - 美丽时尚
a*e
1 楼
又是知道思路但程序写不对,后来通过了,但比别人答案复杂。而且一开始总觉得要区
分有奇数nodes和偶数nodes的情况。一犯困就想不清楚,画图也糊涂。不知道怎么办能
够想清楚,还是实在不行就背下来?
我写的
开始的错误版本,
while(!fast)
{
if (fast->next)
{
fast = fast->next->next;
len+=2;
mid = slow;
}
else
{
fast = NULL;
len+=1;
}
slow = slow->next;
}
if (len%2!=0)//odd number of nodes
{
mid=slow;
}
在VS中debug后改正的
int len=0;
while(fast)
{
if (fast->next)
{
fast = fast->next->next;
len+=2;
}
else
{
fast = NULL;
len+=1;
}
mid = slow;
slow = slow->next;
}
别人的正确的
ListNode *p=head;
ListNode *q=head;
//find the midddle pointer
while (q->next && q->next->next){
p=p->next;
q=q->next->next;
}
分有奇数nodes和偶数nodes的情况。一犯困就想不清楚,画图也糊涂。不知道怎么办能
够想清楚,还是实在不行就背下来?
我写的
开始的错误版本,
while(!fast)
{
if (fast->next)
{
fast = fast->next->next;
len+=2;
mid = slow;
}
else
{
fast = NULL;
len+=1;
}
slow = slow->next;
}
if (len%2!=0)//odd number of nodes
{
mid=slow;
}
在VS中debug后改正的
int len=0;
while(fast)
{
if (fast->next)
{
fast = fast->next->next;
len+=2;
}
else
{
fast = NULL;
len+=1;
}
mid = slow;
slow = slow->next;
}
别人的正确的
ListNode *p=head;
ListNode *q=head;
//find the midddle pointer
while (q->next && q->next->next){
p=p->next;
q=q->next->next;
}