国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

自制網(wǎng)站地圖怎么做品牌策劃書

自制網(wǎng)站地圖怎么做,品牌策劃書,成功的網(wǎng)站建設(shè),嘉定網(wǎng)站設(shè)計制作公司👀樊梓慕:個人主頁 🎥個人專欄:《C語言》《數(shù)據(jù)結(jié)構(gòu)》《藍(lán)橋杯試題》《LeetCode刷題筆記》 🌝每一個不曾起舞的日子,都是對生命的辜負(fù)。 目錄 前言: 【LeetCode】203.移除鏈表元素 【LeetCo…

?👀樊梓慕:個人主頁

?🎥個人專欄:《C語言》《數(shù)據(jù)結(jié)構(gòu)》《藍(lán)橋杯試題》《LeetCode刷題筆記》

🌝每一個不曾起舞的日子,都是對生命的辜負(fù)。


目錄

前言:

【LeetCode】203.移除鏈表元素

【LeetCode】206.反轉(zhuǎn)鏈表

?思路一

思路二

【LeetCode】876.鏈表的中間結(jié)點

快慢指針法

【LeetCode】劍指Offer 22.鏈表中倒數(shù)第k個結(jié)點

快慢指針法?

【LeetCode】21.合并兩個有序鏈表

【LeetCode】劍指Offer Ⅱ 27.回文鏈表


前言:

本系列博文博主會講解鏈表的經(jīng)典OJ題目。

歡迎大家📂收藏📂以便未來做題時可以快速找到思路,巧妙的方法可以事半功倍。

=========================================================================

GITEE相關(guān)代碼:🌟fanfei_c的倉庫🌟

=========================================================================

【LeetCode】203.移除鏈表元素

原題鏈接:🍏移除鏈表元素🍏

題目:給你一個鏈表的頭節(jié)點?head?和一個整數(shù)?val?,請你刪除鏈表中所有滿足?Node.val == val?的節(jié)點,并返回?新的頭節(jié)點?。

?要想刪除當(dāng)前元素,需要知道當(dāng)前元素的位置,及前一個元素的位置,并且保存下一個元素的位置。

所以我們需要三個指針:

  • 一個指針命名為cur,作用是遍歷;
  • 一個指針命名為prev,指向位置為cur的前一個位置,作用是刪除(prev->next=cur->next);
  • 一個next指針用來保存cur的后一個位置,確保free掉cur后仍然可以找到下一元素。

代碼實現(xiàn):?

/*
解題思路:從頭節(jié)點開始進(jìn)行元素刪除,每刪除一個元素,需要重新鏈接節(jié)點
*/
struct ListNode* removeElements(struct ListNode* head, int val) {if(head == NULL)return NULL;struct ListNode* cur = head;struct ListNode* prev = NULL;while(cur){//如果當(dāng)前節(jié)點是需要刪除的節(jié)點if(cur->val == val){//首先保存下一個節(jié)點struct ListNode* next = cur->next;//如果刪除的為頭節(jié)點,更新頭節(jié)點//否則讓當(dāng)前節(jié)點的前趨節(jié)點鏈接next節(jié)點if(prev == NULL){head = cur->next;}else{prev->next = cur->next;  }//釋放當(dāng)前節(jié)點,讓cur指向nextfree(cur);cur = next;}else{//如果cur不是需要刪除的節(jié)點,則更新prev,curprev = cur;cur = cur->next;}}return head;
}

注意:考慮極端情況,如首個位置就是val的情況,作單獨處理。


【LeetCode】206.反轉(zhuǎn)鏈表

原題鏈接:🍏反轉(zhuǎn)鏈表🍏

題目:給你單鏈表的頭節(jié)點?head?,請你反轉(zhuǎn)鏈表,并返回反轉(zhuǎn)后的鏈表。

??

?思路一

同樣的我們需要三個指針來完成這一操作:

  • 一個指針命名為cur,作用是遍歷;
  • 一個指針命名為prev,作用是拿到cur的前一個地址,而后改變cur->next指向prev;
  • 一個指針命名為next,作用是保存cur的后一個位置,防止修改cur->next后找不到cur的后一個位置。

?

代碼實現(xiàn):

struct ListNode* reverseList(struct ListNode* head)
{struct ListNode* prev = NULL;struct ListNode* cur = head, * next = head;if (cur)// 檢查cur是否為空{(diào)next = cur->next;}while (cur){// 往后走prev = cur;cur = next;if(next)// 檢查next是否為空next = next->next;}return prev;
}

思路二

取結(jié)點頭插,完成逆置。

大家只要掌握了頭插就很簡單了。

代碼實現(xiàn):

// 取節(jié)點頭插的思想完成逆置
struct ListNode* reverseList(struct ListNode* head) {struct ListNode* newhead = NULL;struct ListNode* cur = head;while(cur){struct ListNode* next = cur->next;//頭插新節(jié)點,更新頭cur->next = newhead;newhead = cur;cur = next;}return newhead;
}

【LeetCode】876.鏈表的中間結(jié)點

原題鏈接:🍏鏈表的中間結(jié)點🍏

題目:給你單鏈表的頭結(jié)點?head?,請你找出并返回鏈表的中間結(jié)點。

如果有兩個中間結(jié)點,則返回第二個中間結(jié)點。

快慢指針法

若想找到中間結(jié)點,我們可以定義兩個指針:

  • 一個命名為slow,令slow每次走一步;
  • 一個命名為fast,令fast每次走兩步。

這樣當(dāng)fast為NULL,或fast->next為NULL時,slow恰好處于中間位置,最后返回slow即可。

代碼實現(xiàn):

struct ListNode* middleNode(struct ListNode* head)
{struct ListNode* slow=head;struct ListNode* fast=head;while(fast && fast->next)// 分別為奇數(shù)個與偶數(shù)個的判斷條件{slow=slow->next;fast=fast->next->next;}return slow;
}

【LeetCode】劍指Offer 22.鏈表中倒數(shù)第k個結(jié)點

原題鏈接:🍏鏈表中倒數(shù)第k個結(jié)點🍏

題目:輸入一個鏈表,輸出該鏈表中倒數(shù)第k個節(jié)點。

快慢指針法?

同樣需要快慢指針的方法。

令fast先走k步,slow不動,然后slow與fast同時向后走,直到fast為NULL,此時slow的位置就是倒數(shù)第k個位置。

代碼實現(xiàn):

struct ListNode* getKthFromEnd(struct ListNode* head, int k)
{struct ListNode* slow=head,* fast=head;while(k--){if(fast==NULL){return NULL;}   fast=fast->next;}while(fast){slow=slow->next;fast=fast->next;}return slow;
}

【LeetCode】21.合并兩個有序鏈表

原題鏈接:🍏合并兩個有序鏈表🍏

題目:將兩個升序鏈表合并為一個新的?升序?鏈表并返回。新鏈表是通過拼接給定的兩個鏈表的所有節(jié)點組成的。

?思路:取小的尾插。

?注意:極端情況的判斷,如其中一個鏈表為空等等。

代碼實現(xiàn):?

struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2)
{if(list1==NULL)// 判斷其中一個鏈表為空的情況{return list2;}if(list2==NULL)// 判斷其中一個鏈表為空的情況{return list1;}struct ListNode* head=NULL,*tail=NULL;while(list1 && list2){if(list1->val<list2->val){if(head==NULL)// 頭結(jié)點直接賦值{head=tail=list1;}else// 尾插{tail->next=list1;tail=tail->next;}list1=list1->next;}else{if(head==NULL)// 頭結(jié)點直接賦值{head=tail=list2;}else// 尾插{tail->next=list2;tail=tail->next;}list2=list2->next;}}if(list1)// list1有剩余{tail->next=list1;}if(list2)// list2有剩余{tail->next=list2;}return head;
}

【LeetCode】劍指Offer Ⅱ 27.回文鏈表

原題鏈接:🍏回文鏈表🍏

題目:給定一個鏈表的?頭節(jié)點?head?,請判斷其是否為回文鏈表。

如果一個鏈表是回文,那么鏈表節(jié)點序列從前往后看和從后往前看是相同的。

?思路:找到中間結(jié)點,將后半部分逆置,最后令前后兩部分一一對比,如果結(jié)點的值全部相同,則為回文。

?剛好我們可以利用上面實現(xiàn)過的函數(shù):鏈表的中間結(jié)點和反轉(zhuǎn)鏈表。

代碼實現(xiàn):

// 找到中間結(jié)點
struct ListNode* middleNode(struct ListNode* head)
{struct ListNode* slow = head;struct ListNode* fast = head;while (fast && fast->next){slow = slow->next;fast = fast->next->next;}return slow;
}// 反轉(zhuǎn)一個單鏈表
struct ListNode* reverseList(struct ListNode* head)
{struct ListNode* tail = NULL;struct ListNode* cur = head, * next = head;while (next){next = cur->next;cur->next = tail;tail = cur;cur = next;}return tail;
}// 判斷回文結(jié)構(gòu)
bool isPalindrome(struct ListNode* head)
{struct ListNode* mid=middleNode(head);struct ListNode* newhead=reverseList(mid);while(head && newhead){if(head->val!=newhead->val){return false;}else{head=head->next;newhead=newhead->next;}}return true;
}

?=========================================================================

如果你對該系列文章有興趣的話,歡迎持續(xù)關(guān)注博主動態(tài),博主會持續(xù)輸出優(yōu)質(zhì)內(nèi)容

🍎博主很需要大家的支持,你的支持是我創(chuàng)作的不竭動力🍎

🌟~?點贊收藏+關(guān)注 ~🌟

=========================================================================?

http://aloenet.com.cn/news/42655.html

相關(guān)文章:

  • 社區(qū)網(wǎng)站如何做內(nèi)容運營全網(wǎng)推廣費用
  • 大理微網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣公司簡介
  • 網(wǎng)站做抽獎活動快排seo排名軟件
  • 駐馬店市網(wǎng)站建設(shè)外貿(mào)網(wǎng)站推廣
  • 長春做網(wǎng)站新格公司南京seo
  • 正宗營銷型網(wǎng)站建設(shè)網(wǎng)頁一鍵生成app軟件
  • app網(wǎng)站制作下載網(wǎng)站推廣和優(yōu)化系統(tǒng)
  • 安徽設(shè)計網(wǎng)站建設(shè)南寧百度推廣seo
  • 投資網(wǎng)站網(wǎng)站源碼談?wù)勀銓ヂ?lián)網(wǎng)營銷的認(rèn)識
  • 視頻網(wǎng)站建設(shè)公司廣告引流推廣平臺
  • 電商設(shè)計網(wǎng)站模板合肥優(yōu)化推廣公司
  • 網(wǎng)站常用特效國家職業(yè)技能培訓(xùn)官網(wǎng)
  • 資金盤網(wǎng)站開發(fā)價格國外比較開放的社交軟件
  • 開發(fā)邦app優(yōu)化營商環(huán)境條例心得體會
  • 武漢網(wǎng)站推廣怎么做株洲網(wǎng)絡(luò)推廣
  • 做網(wǎng)站的優(yōu)勢seo平臺代理
  • 做視頻up主視頻網(wǎng)站免費推廣論壇
  • 德宏網(wǎng)站建設(shè)在線識別圖片來源
  • 創(chuàng)建網(wǎng)站的準(zhǔn)備網(wǎng)頁鏈接
  • wordpress css代碼背景色如何優(yōu)化標(biāo)題關(guān)鍵詞
  • 用java做電商網(wǎng)站廈門百度代理
  • 新余網(wǎng)站建設(shè)外鏈發(fā)布的平臺最好是
  • 怎么免費自己做網(wǎng)站精準(zhǔn)信息300099
  • 去年做哪個網(wǎng)站能致富競價培訓(xùn)課程
  • 做網(wǎng)站九州科技sem優(yōu)化托管
  • excel做郵箱網(wǎng)站怎么加3www河南網(wǎng)站推廣那家好
  • 長春火車站什么時候通車湖南網(wǎng)站優(yōu)化
  • 廣州市做企業(yè)網(wǎng)站東莞seo培訓(xùn)
  • 長春網(wǎng)站開發(fā)senluowx免費網(wǎng)站站長查詢
  • 免費網(wǎng)站推廣服務(wù)軟文代理平臺