Problem:
Given a sorted linked list, delete all duplicates such that each element appears only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
Summary:
删除链表中的重复元素。
Analysis:
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 if (!head) { 13 return head; 14 } 15 16 ListNode *tmp = head; 17 while (tmp->next != NULL) { 18 ListNode *p = tmp->next; 19 if (tmp->val == p->val) { 20 tmp->next = p->next; 21 delete p; 22 } 23 else { 24 tmp = tmp->next; 25 } 26 } 27 28 return head; 29 } 30 };