返回信息流问题:删除链表中等于给定值val的所有节点
例如 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。
代码: ListNode *removeElements(ListNode *head, int val)
{
if(!head)
return head;
ListNode *p=head;
while(p->val==val)
{
p=p->next;
if(p==NULL)
return NULL;
}head=p;
while(p->next!=NULL)
{
if(p->next->val==val)
{
ListNode *q ;
q=p->next;
p->next=p->next->next;
delete(q);
}
else
p=p->next;
}
return head;
}
};
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #92067同步于 2017/3/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
数据结构中的链表问题,代码不通过
dahulu
2017/3/4镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
代码没有问题,不过你第6行代码`while(p->val==val)`最后一个括号打成了中文的,应该编译不过去吧
【 在 dahulu 的大作中提到: 】
: 问题:删除链表中等于给定值val的所有节点
: 例如 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。
: 代码: ListNode *removeElements(ListNode *head, int val)
: ...................
懂了,谢谢![em18]
【 在 lzj0218 的大作中提到: 】
: : 代码没有问题,不过你第6行代码`while(p->val==val)`最后一个括号打成了中文的,应该编译不过去吧
:
是括号打错了,谢谢![em18]
【 在 duduscript 的大作中提到: 】
: p->next->next 为 NULL,下一次循环的时候p->next->val就会出错