LeetCode(203) Remove LinkedList Elements
2015-11-03 13:23
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
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.
分析
删除链表中的指定值的节点。需要注意的是,所需要删除节点的位置,头,中间,尾,不同位置需要不同处理,避免断链~
AC代码
/** * Definition for singly-linked list. * 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 head; ListNode *pre = head, *p = head; while (p) { //找到要删除的节点元素 if (p->val == val) { //判断当前节点为头结点 if (p == head) { head = p->next; ListNode *q = p; //更新头 p = head; pre = head; delete q; q = NULL; } //删除尾节点 else if (p->next == NULL) { pre->next = NULL; delete p; p = NULL; } //删除链表中间节点 else{ pre->next = p->next; ListNode *q = p; p = p->next; delete q; q = NULL; }//else }//if else{ pre = p; p = p->next; } }//while return head; } };
GitHub测试程序源码
相关文章推荐
- truncate函数
- 苹果官方解释可以忽略『CGBitmapContextCreateImage: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE...』报错的帖子
- LeetCode(203) Remove LinkedList Elements
- 安装bugzilla
- 12299 - RMQ with Shifts
- Unity3d 引擎原理详细介绍
- oracle认证考试:Oracle和SQLServer常用函数对比:
- Oracle 11g修改中文字符集
- 1553B通讯软件设计RT客户端
- 使用maven-shade-plugin插件打包可运行jar
- HDU 5534 (ACM 2015 长春) Partial Tree [基础DP]
- 海思mmz: section 2 reloc 30 sym 'printk': relocation 28 out of range问题解决
- oracle查询所有表
- oracle job 定时执行 存储过程
- 有人认为,“中文编程”是解决中国程序员编程效率的秘密武器,请问它是一个“银弹”么?
- 阅读有关软件工程与计算机科学区别的文章,谈谈你的看法。
- imp导入到指定表空间
- Oracle 11g R2 用exp无法导出空表解决方法
- 黑马程序员—— Foundation框架NSArray、NSSet、NSDictionary、NSNumber、NSDate、NSValue
- 双系统电脑给C盘扩容后导致D盘Win10引导项丢失该怎么办?