链表82. 删除排序链表中的重复元素 II
Posted ocpc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表82. 删除排序链表中的重复元素 II相关的知识,希望对你有一定的参考价值。
题目:
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
示例 1:
输入: 1->2->3->3->4->4->5
输出: 1->2->5
示例 2:
输入: 1->1->1->2->3
输出: 2->3
解答:
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 class Solution { 10 public: 11 ListNode* deleteDuplicates(ListNode* head) 12 { 13 ListNode dummy(0); 14 dummy.next = head; 15 ListNode *pre = &dummy; 16 ListNode *cur = head; 17 while(cur) 18 { 19 int i = cur->val; 20 if(cur->next && cur->next->val == i) 21 { 22 while(cur && cur->val == i) 23 { 24 pre->next = cur->next; 25 delete cur; 26 cur = pre->next; 27 } 28 cur = pre; 29 } 30 pre = cur; 31 cur = cur->next; 32 } 33 return dummy.next; 34 } 35 };
以上是关于链表82. 删除排序链表中的重复元素 II的主要内容,如果未能解决你的问题,请参考以下文章