链表83. 删除排序链表中的重复元素
Posted ocpc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表83. 删除排序链表中的重复元素相关的知识,希望对你有一定的参考价值。
题目:
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
解答:
(1)指定cur指针指向头部head;
(2)当cur和cur->next的存在为循环结束条件,当二者有一个不存在时说明链表没有去重复的必要了;
(3)如果不相等,则cur移动到下一个位置继续循环;
(4)时间复杂度O(n);
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 ListNode *cur = head; 13 14 while (cur && cur->next) 15 { 16 if (cur->val == cur->next->val) 17 { 18 cur->next = cur->next->next; 19 } 20 else 21 { 22 cur = cur->next; 23 } 24 } 25 26 return head; 27 } 28 };
以上是关于链表83. 删除排序链表中的重复元素的主要内容,如果未能解决你的问题,请参考以下文章