LeetCode 82. 删除排序链表中的重复元素 II

题目链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

示例 1:

输入: 1->2->3->3->4->4->5
输出: 1->2->5
示例 2:

输入: 1->1->1->2->3
输出: 2->3

递归,学习了

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     struct ListNode *next;
 6  * };
 7  */
 8 
 9 struct ListNode* deleteDuplicates(struct ListNode* head){
10     if(head==NULL||head->next==NULL) return head;
11     struct ListNode *q=head->next;
12     if(head->val==q->val){
13         while(q && head->val==q->val){
14             struct ListNode *tmp=q;
15             q=q->next;
16             free(tmp);
17         }
18         free(head);
19         return deleteDuplicates(q);
20     }else{
21         head->next=deleteDuplicates(head->next);
22         return head;
23     }
24 }

 

posted @ 2020-03-03 17:14  wydxry  阅读(176)  评论(0编辑  收藏  举报
Live2D