Problem:
Given a sorted linked list, delete all duplicates such that each element appears only once.
For example,
Given1->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 };