剑指offer:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。
生活随笔
收集整理的這篇文章主要介紹了
剑指offer:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在一個排序的鏈表中,存在重復的結點,請刪除該鏈表中重復的結點,重復的結點不保留,返回鏈表頭指針。
例如,鏈表1->2->3->3->4->4->5 處理后為 1->2->5
看這圖體會一下
/* struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {} }; */ class Solution { public:ListNode* deleteDuplication(ListNode* pHead){if(pHead == nullptr || pHead->next == nullptr)return pHead;int value = -1;if(value == pHead->val)value = -2;ListNode* tmp = new ListNode(value);tmp->next = pHead;ListNode* p = tmp;ListNode* q = pHead;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 tmp->next;} };?
總結
以上是生活随笔為你收集整理的剑指offer:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4.HTTPS与HTTP的区别
- 下一篇: 8.MYSQL:触发器的使用[TRIGG