国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

算法通關(guān)村第二關(guān)——鏈表反轉(zhuǎn)

這篇具有很好參考價值的文章主要介紹了算法通關(guān)村第二關(guān)——鏈表反轉(zhuǎn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

鏈表反轉(zhuǎn),就是鏈表原來是1->2->3->4->5,經(jīng)過反轉(zhuǎn)處理過后變成5->4->3->2->1

處理鏈表反轉(zhuǎn),有兩種方式,一個是建立虛擬頭結(jié)點,一個是直接操作鏈表反轉(zhuǎn)。

1. 建立虛擬頭結(jié)點

算法通關(guān)村第二關(guān)——鏈表反轉(zhuǎn),算法,鏈表,javascript

?這是執(zhí)行的流程

最核心的兩行就是

cur.next = ans.next;
ans.next = cur;

直接想我要讓她反轉(zhuǎn),我現(xiàn)在設(shè)立了虛擬頭結(jié)點,那我就要讓新加進這個反轉(zhuǎn)鏈表的結(jié)點的next為我反轉(zhuǎn)鏈表中ans的next,再讓ans的next設(shè)為當前結(jié)點,也就是我剛才處理的結(jié)點。

public static ListNode reverseList(ListNode head) {
    ListNode ans = new ListNode(-1);
    ListNode cur = head;
    while (cur != null) {
        ListNode next = cur.next;
        cur.next = ans.next;
        ans.next = cur;
        cur = next;
    }
    return ans.next;
}

這里我對于代碼的理解是剛開始設(shè)立了ans,但是還沒有將ans.next設(shè)為第一個結(jié)點1,是在第一次循環(huán)的時候做的,cur剛開始是原鏈表的1,循環(huán)中,

將cur.next也就是2先設(shè)立為next,讓ans.next(null)給到cur.next,這里做的是讓原鏈表頭結(jié)點1的next為null,因為在反轉(zhuǎn)之后,1作為鏈表的尾結(jié)點,next為null。

然后讓cur(1)給到ans.next,就是讓ans和1建立起了關(guān)聯(lián)。

然后讓next也就是原鏈表的頭結(jié)點1的下一個結(jié)點,給到cur,在處理下一個結(jié)點。這樣就實現(xiàn)了鏈表反轉(zhuǎn)。

2. 直接在鏈表操作

這種也是要會的

算法通關(guān)村第二關(guān)——鏈表反轉(zhuǎn),算法,鏈表,javascript

?文章來源地址http://www.zghlxwxcb.cn/news/detail-642381.html

public ListNode reverseList(ListNode head) {
    ListNode prev = null;
    ListNode curr = head;
    while (curr != null) {
        ListNode next = curr.next;
        curr.next = prev;
        prev = curr;
        curr = next;
    }
    return prev;
}

到了這里,關(guān)于算法通關(guān)村第二關(guān)——鏈表反轉(zhuǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 算法通關(guān)村第二關(guān)——指定區(qū)間反轉(zhuǎn)問題解析

    算法通關(guān)村第二關(guān)——指定區(qū)間反轉(zhuǎn)問題解析

    Leetcode92有這樣一道題:給你單鏈表的頭指針head和兩個整數(shù)left、right,其中l(wèi)eft=right,請你反轉(zhuǎn)從位置left到位置right的鏈表結(jié)點,返回反轉(zhuǎn)后的鏈表,如圖所示: 這道題呢,有兩種不同的解法,分別是頭插法和穿針引線法,頭插法就是我們前面說過的帶頭結(jié)點的反轉(zhuǎn),而穿針引

    2024年02月14日
    瀏覽(21)
  • 算法通關(guān)村第二關(guān)——K個一組反轉(zhuǎn)

    前面有很多關(guān)于鏈表反轉(zhuǎn)的知識,K個一組反轉(zhuǎn),就是讓很多組節(jié)點進行翻轉(zhuǎn),本質(zhì)也都是一樣的。 現(xiàn)在的鏈表是 3-2-1-4-5-6-7-8 3-2-1已經(jīng)進行了反轉(zhuǎn),現(xiàn)在要進行反轉(zhuǎn)的是4-5-6 在這里首先計算出鏈表的長度,然后計算出要反轉(zhuǎn)幾組,現(xiàn)在定義pre為dummyNode,cur定義為head。 通過f

    2024年02月14日
    瀏覽(21)
  • 算法通關(guān)村第二關(guān)——終于學(xué)會鏈表

    算法通關(guān)村第二關(guān)——終于學(xué)會鏈表

    LeetCode206 給我們單鏈表的頭結(jié)點head,請你反轉(zhuǎn)鏈表,并返回反轉(zhuǎn)后的鏈表,如圖所示: 本題有兩種方法,分別為 建立虛擬頭結(jié)點輔助反轉(zhuǎn) 以及 直接操作鏈表實現(xiàn)反轉(zhuǎn) ,兩種方法我將逐一分析講解。 首先從名字分析一下這種方法,虛擬頭結(jié)點,顧名思義,我們可以建立一個

    2024年02月15日
    瀏覽(27)
  • 算法村第二關(guān)(1)——手寫鏈表反轉(zhuǎn)

    算法村第二關(guān)(1)——手寫鏈表反轉(zhuǎn)

    題目:Leetcode-206. 反轉(zhuǎn)鏈表 給你單鏈表的頭節(jié)點 head ,請你反轉(zhuǎn)鏈表,并返回反轉(zhuǎn)后的鏈表 對于鏈表反轉(zhuǎn)的問題,想起來其實非常簡單。 就是從前往后,將節(jié)點一個一個采用頭插法的做成一個新鏈表嘛,這樣新鏈表就是舊鏈表的反轉(zhuǎn)鏈表啦! 那既然這么簡單,為什么還要學(xué)

    2024年02月14日
    瀏覽(25)
  • 算法通關(guān)村第二關(guān)——兩兩交換鏈表中的節(jié)點問題解析
  • 算法通過村第二關(guān)-鏈表黃金筆記|K個一組反轉(zhuǎn)

    算法通過村第二關(guān)-鏈表黃金筆記|K個一組反轉(zhuǎn)

    提示:沒有人天生就喜歡一種氣味而討厭另一種氣味。文明的暗示而已。 給你鏈表的頭節(jié)點 head ,每 k 個節(jié)點一組進行翻轉(zhuǎn),請你返回修改后的鏈表。 k 是一個正整數(shù),它的值小于或等于鏈表的長度。如果節(jié)點總數(shù)不是 k 的整數(shù)倍,那么請將最后剩余的節(jié)點保持原有順序。

    2024年02月14日
    瀏覽(19)
  • 算法通關(guān)村第十二關(guān)——字符串反轉(zhuǎn)問題解析

    算法通關(guān)村第十二關(guān)——字符串反轉(zhuǎn)問題解析

    字符串反轉(zhuǎn)是關(guān)于字符串算法里的重要問題,雖然不是太難,但需要考慮到一些邊界問題。本篇文章就對幾道字符串反轉(zhuǎn)題目進行分析。 力扣344題,編寫一個函數(shù),其作用是將輸入的字符串反轉(zhuǎn)過來。輸入字符串以字符數(shù)組 s 的形式給出。不要給另外的數(shù)組分配額外的空間,

    2024年02月10日
    瀏覽(21)
  • 算法通關(guān)村第二關(guān)——單鏈表加一

    LeetCode369 用一個非空單鏈表來表示一個非負整數(shù),然后將這個整數(shù)加一。你可以假設(shè)這個整數(shù)除了 0 本身,沒有任何前導(dǎo)的 0.這個證書的各個數(shù)位按照 高位在鏈表頭部、低位在鏈表尾部 的順序排列。 計算是從低位開始的,而鏈表是從高位開始的,所以要處理就必須反轉(zhuǎn)過來

    2024年02月14日
    瀏覽(19)
  • 算法通關(guān)村十二關(guān) | 字符串前綴問題

    算法通關(guān)村十二關(guān) | 字符串前綴問題

    題目:LeetCode14,14. 最長公共前綴 - 力扣(LeetCode) 我們先看公共前綴有什么特點。 第一種方式,豎著比較,如圖左邊所示,選取數(shù)組中第一個字符串的位置,每前進一個就比較各個字符串,看是否相等,只有某一輪遇到不相等,則結(jié)束返回結(jié)果。 還是這張圖 ????????如

    2024年02月11日
    瀏覽(25)
  • 算法通關(guān)村第十二關(guān)-字符串基礎(chǔ)題目

    思路:遍歷字符串,將第i個字符和第N-i-1個字符串交換即可; 代碼實現(xiàn): 題目:反轉(zhuǎn)字符串2 思路:每2k個一組,將其前k個字符反轉(zhuǎn),使用i+k與字符串長度n判斷剩余字符串長度屬于(0,k)還是 [k,2k)之間;然后按照要求剩余字符串即可; 代碼實現(xiàn): 題目:僅僅反轉(zhuǎn)字母 思

    2024年01月22日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包