题目描述:
思路:
这道题,还是很简单的,只需要维持一个重复数字的指示即可,之后遇到的就直接跳过。
我的代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* deleteDuplicates(struct ListNode* head){
struct ListNode* res=NULL,*rt=NULL,*tmp=head;
int repeatNum=101;
bool isFirst=true;
while(tmp!=NULL){
if(tmp->next!=NULL && tmp->val==tmp->next->val){
repeatNum=tmp->val;
}
if(tmp->val!=repeatNum){
if(isFirst){
res=tmp;
rt=res;
isFirst=false;
}
else {
rt->next=tmp;
rt=rt->next;
}
}
tmp=tmp->next;
}
if(rt!=NULL)rt->next=NULL;
return res;
}
官方解答:
struct ListNode* deleteDuplicates(struct ListNode* head) {
if (!head) {
return head;
}
struct ListNode* dummy = malloc(sizeof(struct ListNode));
dummy->next = head;
struct ListNode* cur = dummy;
while (cur->next && cur->next->next) {
if (cur->next->val == cur->next->next->val) {
int x = cur->next->val;
while (cur->next && cur->next->val == x) {
cur->next = cur->next->next;
}
} else {
cur = cur->next;
}
}
return dummy->next;
}
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/solution/shan-chu-pai-xu-lian-biao-zhong-de-zhong-oayn/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。