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 };

 

 
posted @ 2016-10-08 21:16  wangxiaobao1114  阅读(124)  评论(0编辑  收藏  举报