82. Remove Duplicates from Sorted List II
来源:互联网 发布:淘宝抓取图片软件 编辑:程序博客网 时间:2024/05/16 10:13
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5
, return 1->2->5
.
Given 1->1->1->2->3
, return 2->3
.
思路:先看头结点重复没,对头结点进行处理,然后递归出现其后的结点。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:ListNode* deleteDuplicates(ListNode* head) {while (head){ListNode* p = head->next;if (p && p->val == head->val){while (p && p->val == head->val){head = p;p = p->next;}head = p;}else{break;}}if (head == NULL)return head;head->next = deleteDuplicates(head->next);return head;}};
思路2:非递归实现,速度会快很多。
class Solution {public:ListNode* deleteDuplicates(ListNode* head) {ListNode *pre = NULL;ListNode *newHead = NULL;ListNode *cur = head;int tmp = INT_MIN;while (cur){if (cur->val == tmp || (cur->next && cur->next->val == cur->val)){//满足删除条件tmp = cur->val;if (pre){pre->next = cur->next;}}else{if (!pre)newHead = cur;pre = cur;}cur = cur->next;}return newHead;}};
0 0
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 82. Remove Duplicates from Sorted List II
- 系统级性能分析工具 — Perf
- C#开发可以可视化操作的windows服务
- PHP 简单 延时任务
- js用到的一些工具方法
- 友盟第三方登录
- 82. Remove Duplicates from Sorted List II
- iOS的三种多线程技术 对比分析
- Ghost的相关问题
- STM32的项目文件分组
- linux创建桌面图标,和开始菜单栏图标
- ViewPager.getChildAt()为空问题?
- Tomcat-Session共享实现-Redis
- POJ2236(Wireless Network)
- 基于线程池的线程调度管控系统