给定一个有序单链表(从小到大有序)的头结点head(该结点有值),删除链表中的重复元素,使链表中的所有元素都只出现一次。如当输入 {1,1,2} 时,经删除后,原链表变为 {1,2},对应的输出为 {1,2}。
代码实现
C语言代码:
struct ListNode* deleteDuplicates(struct ListNode* head ) {
if(head == NULL)
return head;
struct ListNode *p;
p = head;
while(p->next != NULL)
{
if(p->val == p->next->val)
p->next = p->next->next;
else
p = p->next;
}
return head;
}
图解代码
⏩ 第一步:定义一个新结点,将其指向头结点⏩ 第二步:当前结点的值与当前结点的下一个结点数值做比较:如果数值相等,直接将当前结点指向下一个结点的next结点;不相等的话继续遍历结点

⏩ 第三步:返回头结点
往期推荐
●
●
●
●
●
●
●
●





扫二维码|关注我们
微信号|andyxi_linux
专注于嵌入式开发技术

分享、在看与点赞
只要你点,我们就是胖友
