您的位置:首页 > 其它

Remove Duplicates from Sorted List II

2015-07-08 22:31 405 查看
题目描述

链接地址

解法

题目描述

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

Example

Given 1->2->3->3->4->4->5, return 1->2->5.

Given 1->1->1->2->3, return 2->3.

链接地址

http://www.lintcode.com/en/problem/remove-duplicates-from-sorted-list-ii/

解法

ListNode * deleteDuplicates(ListNode *head) {

// write your code here

if (head == NULL) {

return head;

}

ListNode *dummyNode = new ListNode();

dummyNode->next = head;

ListNode *pre = dummyNode;

ListNode *cur = pre->next;

while (cur!= NULL && cur->next!= NULL) {

if (cur->val == cur->next->val) {

ListNode *temp = cur;

while (temp != NULL && temp->next != NULL && temp->val == temp->next->val) {

ListNode *del = temp->next;

temp->next = del->next;

delete del;

}

pre ->next = temp->next;

cur = pre->next;

delete temp;

} else {

pre = cur;

cur = cur->next;

}

}

ListNode *ret = dummyNode->next;

delete dummyNode;

return ret;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lintCode