[LeetCode] Remove Duplicates from Sorted List II 移除有序連結串列中的重複項之二
阿新 • • 發佈:2018-12-27
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5
, return 1->2->5
.
Given 1->1->1->2->3
, return 2->3
.
和之前那道 ( http://www.cnblogs.com/grandyang/p/4066453.html
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * };*/ class Solution { public: ListNode *deleteDuplicates(ListNode *head) { if (!head || !head->next) return head; ListNode *start = new ListNode(0); start->next = head; ListNode *pre = start; while (pre->next) { ListNode*cur = pre->next; while (cur->next && cur->next->val == cur->val) cur = cur->next; if (cur != pre->next) pre->next = cur->next; else pre = pre->next; } return start->next; } };