Leetcode83.删除排序链表中的重复元素(C语言)
数据结构-链表:算法与数据结构参考
题目:
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。例:
输入: 1->1->2
输出: 1->2
思路:
递归
代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* deleteDuplicates(struct ListNode* head){
if(head==NULL || head->next==NULL) return head;
head->next=deleteDuplicates(head->next);
//函数等价条件,递归结束时head->next无重复节点
return (head->val == head->next->val) ? head->next : head;
//处理head和head->next
}