Remove Linked List Elements [leetcode]
2015-05-29 09:53
274 查看
Remove Linked List Elements
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
题意:
删除给定的节点
解题思路:
1.考虑头结点等于给定节点并需要删除的情况,此时头结点指针需要向前移动。
2.考虑中间节点等于给定值并需要删除的情况,此时删除该节点并释放资源,同时节点指针移动到下一个节点。
实现代码如下:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* removeElements(struct ListNode* head, int val) { struct ListNode *p,*p1,*temp; if(head == NULL) return head; p = head; while(p != NULL && p->val == val){//当头结点值==val的情况 temp = p; p = p->next; temp = NULL; } p1 = p; head = p;//保留头结点指针 while(p != NULL){//当链表中有值==val的情况 if(p->val == val){ temp = p; p1->next = p->next; p = p->next; temp = NULL; }else{ p1 = p; p = p->next; } } return head; }
相关文章推荐
- iOS集合
- 简单工厂类
- 沙箱中的间谍——可行的 JavaScript 高速缓存区攻击
- SimpleAdapter和Baseadapter填充listActivity-android学习之旅()
- 拒绝"肉展"?China Joy还要怎么玩?
- SimpleAdapter和Baseadapter填充listActivity-android学习之旅()
- SimpleAdapter和Baseadapter填充listActivity-android学习之旅()
- AspNet MVC4 教学-20:Asp.Net MVC4 Routing技术快速应用Demo
- Put Everything Under Version Control
- spring freemarker集成
- MySQL5.6在线DDL不锁表(在线添加字段)
- gluster logrotate配置说明
- Android自定义控件View(二)继承控件
- 实现iOS应用图标右上角数字badge number提醒
- 关键帧动画CAKeyframeAnimation
- The Professional Programmer
- iOS中的排序笔记
- 由于编译Android4.0需要jdk1.5所以要降jdk版本到1.5
- char * fgets(char * s, int n,FILE *stream);
- 多线程