LeetCode83——Remove Duplicates from Sorted List
2016-01-27 21:45
375 查看
LeetCode83——Remove Duplicates from Sorted List
与LeetCode82——Remove Duplicates from Sorted List II类似,不删重,也就是说如果有重复的元素,保留一个。原题
Given a sorted linked list, delete all duplicates such that each element appear only once.For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.
分析
就跟上一题类似了,依然构造头指针,不同的是,我们在进行重复元素的循环判断并删除的时候,保留一个即可。代码
class Solution { public: ListNode* deleteDuplicates(ListNode* head) { ListNode * start = new ListNode(0); start->next = head; ListNode * p = start->next; ListNode*q = start; while (NULL!=p&&p->next != NULL) { if (p->next != NULL&&p->next->val == p->val) { while (p->next != NULL&&p->next->val == p->val) { ListNode * r = p; p = p->next; delete r; } q->next = p;//保留一个元素 q=q->next;//始终让q位于可行链表的最后一个位置 p = p->next; } else { p = p->next; q = q->next; } } return start->next; } };
相关文章推荐
- hdu5612Baby Ming and Matrix games 搜索
- 浅析Sql Server参数化查询
- Android常用jar包中 StringUtils的说明
- IceGrid负载均衡部署 z
- JVM总结(二):JVM的内存分配策略
- 刷题
- 第十章数组和指针 p267
- 傅里叶级数的理解
- 用简单的C语言实现多任务轮流切换(模拟操作系统线程机制)
- 用简单的C语言实现多任务轮流切换(模拟操作系统线程机制)
- STM32 printf 重定向问题
- 用简单的C语言实现多任务轮流切换(模拟操作系统线程机制)
- ice介绍 z
- ObjC语法练习 冒泡排序、选择排序、矩阵相乘
- [Javascript] Web APIs: Persisting browser data with window.localStorage
- Bestcoder#69
- stack around the variable “res” was corrupted
- 计算机原理-w位无符号和有符号位数最大值和最小值公式
- 年度总结
- 大数据入门:各种大数据技术介绍