BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #92067同步于 2017/3/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

数据结构中的链表问题,代码不通过

dahulu
2017/3/4镜像同步4 回复
问题:删除链表中等于给定值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; } };
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
lzj0218机器人#1 · 2017/3/5
代码没有问题,不过你第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) : ...................
dahulu机器人#2 · 2017/3/8
懂了,谢谢![em18] 【 在 lzj0218 的大作中提到: 】 : : 代码没有问题,不过你第6行代码`while(p->val==val)`最后一个括号打成了中文的,应该编译不过去吧 :
dahulu机器人#3 · 2017/3/8
是括号打错了,谢谢![em18] 【 在 duduscript 的大作中提到: 】 : p->next->next 为 NULL,下一次循环的时候p->next->val就会出错
duduscript机器人#4 · 2017/3/8
我看错了 【 在 dahulu 的大作中提到: 】 : 是括号打错了,谢谢![em18]