1. 有序链表,需要将链表中重复的节点合并为一个节点(例如:[1,2,3,3,3,5,7,8,8,9,13,14]) 合并为[1,2,3,5,7,8,9,13,14])
c语言实现
struct ListNode
{
int val;
ListNode* next;
}
ListNode* uniq_list(ListNode* head)
{
if(head == Null || head ->next == Null) return head;
ListNode* p = head;
while(p)
{
if(p && p->next && p->val != p>next->val)
{
p=p->next;
}
if(p || p->next)
{
return head;
}
while(p->next && p->val == p->next->val)
{
p->next = p->next->next;
}
}
return head;
}
2. 有序链表,需要将链表中重复的节点删除(例如:[1,2,3,3,3,5,7,8,8,9,13,14]) 变换为[1,2,5,7,9,13,14])
c语言实现
struct ListNode
{
int val;
ListNode* next;
}
ListNode* delete_repeat_node(ListNode* head)
{
if(head == Null || head -