Discription:
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
Solution:
ListNode* deleteDuplicates(ListNode* head) {
if (!head)
return NULL;
ListNode *cur = head;
while (cur->next) {
if (cur->val == cur->next->val) {
ListNode *temp = cur->next;
cur->next = cur->next->next;
delete temp;
}
else
cur = cur->next;
}
return head;
}
Discription:
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
.
Solution:
ListNode* deleteDuplicates(ListNode* head) { //比较经典的
ListNode* dummy = new ListNode(0);
dummy->next = head;
ListNode* cur = dummy;
int duplicate;
while (cur->next && cur->next->next) {
if (cur->next->val == cur->next->next->val) {
duplicate = cur->next->val;
while (cur->next && cur->next->val == duplicate) {
cur->next = cur->next->next;
}
}
else {
cur = cur->next;
}
}
return dummy->next;
}
GitHub-Leetcode:
https://github.com/wenwu313/LeetCode