leetcode刷题 82.删除排序链表中的重复元素Ⅱ
生活随笔
收集整理的這篇文章主要介紹了
leetcode刷题 82.删除排序链表中的重复元素Ⅱ
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目解析:
因為本題是使用鏈表,且題目要求刪除連續重復數字,由此可以想到我們應該使用雙指針的方法。
代碼實現:
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/ class Solution { public:ListNode* deleteDuplicates(ListNode* head) {if(head==nullptr) //檢測鏈表是否為空return p->next;ListNode *p = new ListNode(0); p->next = head; //新建空指針使其指向頭節點ListNode *temp = p; //設置臨時指針,指向當前指針ListNode *left = head; //設置雙指針左側ListNode *right = head->next; //設置雙指針右側while( right ) //循環{if(left->val==right->val) //如果雙指針相同{while(right&&left->val==right->val) //這是一個比較好的用來檢測連續存在相同數的方法right=right->next;temp->next=right;left=right;if(right)right=right->next;}else //未出現重復時移動指針{temp=left;left=right;right=right->next;}}return p->next;} }; 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的leetcode刷题 82.删除排序链表中的重复元素Ⅱ的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 名下不动产怎么查询 如何查询名下不动产
- 下一篇: leetcode刷题 15.三数之和