标签:
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
.
Subscribe to see which companies asked this question
c++ code:
/** * 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) return NULL; // 加一个哑值作为“伪”头结点,方便处理头部有重复结点情况 ListNode dummy(0); dummy.next = head; ListNode *pre = &dummy; ListNode *cur = head; while(cur){ while(cur->next && cur->val == cur->next->val) cur=cur->next; if(pre->next == cur) pre = pre->next; // 无重复结点 else pre->next = cur->next; // 有重复结点 cur = cur->next; } return dummy.next; } };
LeetCode:Remove Duplicates from Sorted List II
标签:
原文地址:http://blog.csdn.net/itismelzp/article/details/51569139