LeetCode83 Remove Duplicates from Sorted List
题目:
Given a sorted linked list, delete all duplicates such that each element appear only once. (Easy)
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->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 ListNode dummy(0); 13 dummy.next = head; 14 while (head != nullptr && head -> next != nullptr) { 15 if (head -> next -> val == head -> val) { 16 ListNode* temp = head -> next; 17 head -> next = head -> next -> next; 18 delete temp; 19 } 20 else { 21 head = head -> next; 22 } 23 } 24 return dummy.next; 25 } 26 };