[剑指offer] 56. 删除链表中重复的结点
Posted ruoh3kou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[剑指offer] 56. 删除链表中重复的结点相关的知识,希望对你有一定的参考价值。
题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
思路:
class Solution { public: ListNode *deleteDuplication(ListNode *pHead) { if (pHead == NULL || pHead->next == NULL) return pHead; ListNode *head = new ListNode(pHead->val - 1); head->next = pHead; ListNode *p = head; ListNode *q = head->next; while (q) { while (q->next && (q->next->val == q->val)) { q = q->next; } if (p->next != q) { q = q->next; p->next = q; } else { p = q; q = q->next; } } return head->next; } };
以上是关于[剑指offer] 56. 删除链表中重复的结点的主要内容,如果未能解决你的问题,请参考以下文章