您的位置:首页 > 编程语言

编程之美-看看出了什么问题?

2016-06-23 21:55 239 查看
第一次提交的代码:输出错误,您打印太多的东西。
ListNode * small=new ListNode(0);
ListNode * big=new ListNode(0);
ListNode * first=new ListNode(0);
ListNode * second=new ListNode(0);
first=small;
second=big;
while(head->next!=NULL)
{
if(head->val<=val)
{
small->next=head;
small=small->next;
}
else
{
big->next=head;
big=big->next;
}
head=head->next;
}
if(head->val<=val)
{
small->next=head;
small=small->next;
small->next=NULL;
}
else
{
big->next=head;
big=big->next;
big->next=NULL;
}
if(first->next==NULL)return second->next;
else if(second->next==NULL)return first->next;
else
{
small->next=second->next;
return first->next;
}

第二次提交的代码,正确通过。

if(head==NULL)return NULL;
ListNode * small=NULL;
ListNode * big=NULL;
ListNode * first=NULL;
ListNode * second=NULL;
while(head)
{
if(head->val<=val)
{
if(first==NULL)
{
first=head;
small=head;
}
else
{
small->next=head;
small=head;
}

}
else
{
if(second==NULL)
{
second=head;
big=head;
}
else
{
big->next=head;
big=head;
}

}
head=head->next;
}
if(first==NULL)
{
big->next=NULL;
return second;
}
else if(second==NULL){
small->next=NULL;
return first;
}
else
{
big->next=NULL;
small->next=second;
return first;
}

}

昨天请教了一圈人,今天参考别人的代码才发现,我在标志指针头部时使用指针标志,结果用动态变换指针赋给头指针。也有人说是我第一段代码占用内存太大,大家帮忙看看到底什么问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链表 C++ 指针