LeetCode Remove Linked List Elements
2015-06-10 19:19
225 查看
Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
题目意思:删除链表中值为val的结点
分析:这个题目比较简单,只需要注意几个特殊情况就可以了。
(1)头结点是要删除的结点
(2)链表中的结点全部要删除
思路:为了保证情况(1)出现时,代码的正确性,我们可以创建一个新的结点,它的下一个结点为头结点
代码:
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
题目意思:删除链表中值为val的结点
分析:这个题目比较简单,只需要注意几个特殊情况就可以了。
(1)头结点是要删除的结点
(2)链表中的结点全部要删除
思路:为了保证情况(1)出现时,代码的正确性,我们可以创建一个新的结点,它的下一个结点为头结点
代码:
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution { public: ListNode* removeElements(ListNode* head, int val) { if(head==NULL) return NULL; ListNode *pre=(ListNode*)malloc(sizeof(ListNode)); pre->next=head; ListNode *node=pre; while(node->next!=NULL) { if(node->next->val==val) { ListNode *tmp=node->next; node->next=tmp->next; delete tmp; } else node=node->next; } return pre->next; } };
相关文章推荐
- View Controller 生命周期的各个方法的用法
- 自定义cell,添加uilable,并且给lable添加tap手势,不响应的问题,对应解决方法
- android studio 快速进行应用程序包名更换
- 个人IOCP服务器例子解说
- winxp计算机管理中服务详解
- P225 3
- STM32-USB详细使用说明(转)
- Java 递归算法
- “世界很美好,值得你为之奋斗”我只同意后半句。
- 360技术开发实习笔试题1-java
- Android消息系统(一)
- POJ 2485 最小生成树
- bzoj 1314: River过河 优先队列
- java web学习路线2
- USB设备请求和描述符(转)
- R语言学习
- IOCP 浅析与实例
- USB-HID简介(转)
- 认识自己——我所丧失的能力
- python爬虫解决百度贴吧登陆验证码问题