83. 删除排序链表中的重复元素 - 力扣(LeetCode)
思路:
1.先定义一个节点指向该链表的头节点-s,再定义一个节点指向该链表的第二个节点-p.
2.当链表为空或者链表中只有一个节点时返回头节点.
3.当q不为空的时候进入循环,判断p->val是否与s->val是否相同,相同的话,令p = p->next,s->next = p;否则的话往后遍历
代码实现(以力扣为例):
struct ListNode* deleteDuplicates(struct ListNode* head){ if(head == NULL || head->next == NULL) { return head; } struct ListNode* p = head,* q = head->next; while(q) { if(p->val == q->val) { q = q->next; p->next = q; } else { p = q; q = q->next; } } return head; }