Remove Duplicates from Sorted List
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
.
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* deleteDuplicates(struct ListNode* head) {
if(head != NULL) {
struct ListNode *p = head;
while(p->next != NULL) { //p不是最后一个节点
if(p->val != p->next->val) //后一个和前一个相同
p = p->next;
else {
struct ListNode *tmp = p->next;
p->next = p->next->next;
free(tmp);
}
}
}
return head;
}
原题地址:
https://leetcode.com/problems/remove-duplicates-from-sorted-list/