golang中怎么反轉(zhuǎn)鏈表

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)golang中怎么反轉(zhuǎn)鏈表,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比漣源網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式漣源網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋漣源地區(qū)。費用合理售后完善,十年實體公司更值得信賴。

問題:反轉(zhuǎn)一個單鏈表。
輸入: 1->2->3->4->5->NULL
輸出: 5->4->3->2->1->NULL

首先先認識一下鏈表這個數(shù)據(jù)結(jié)構(gòu):

鏈表節(jié)點中有兩個元素:

  • 指針

type ListNode struct {
    Val  int
    Next *ListNode
}

Next指向下一個節(jié)點

golang中怎么反轉(zhuǎn)鏈表

那么這道題其實就是把指針指向前一個節(jié)點

位置調(diào)換次數(shù)precurwhole
0nil1->2->3->4->51->2->3->4->5
11->nil2->-3>->4->52->3->4->5->1->nil
22->1->nil3->4->53->4->5->2->1->nil
33->2->1->nil4->54->5->3->2->1->nil
44->3->2->1->nil55->4->3->2->1->nil

可以看出來

  • pre是cur的最前面那位(pre = cur)

  • cur就是當前位的后面鏈表元素(cur = cur.Next)

  • cur.Next肯定是接pre(cur.Next = pre)

完整代碼:
package main

import "fmt"

//鏈表節(jié)點
type ListNode struct {
    Val  int
    Next *ListNode
}

//反轉(zhuǎn)鏈表的實現(xiàn)
func reversrList(head *ListNode) *ListNode {
    cur := head
    var pre *ListNode = nil
    for cur != nil {
        pre, cur, cur.Next = cur, cur.Next, pre //這句話最重要
    }
    return pre
}

func main() {
    head := new(ListNode)
    head.Val = 1
    ln2 := new(ListNode)
    ln2.Val = 2
    ln3 := new(ListNode)
    ln3.Val = 3
    ln4 := new(ListNode)
    ln4.Val = 4
    ln5 := new(ListNode)
    ln5.Val = 5
    head.Next = ln2
    ln2.Next = ln3
    ln3.Next = ln4
    ln4.Next = ln5

    pre := reversrList(head)
    fmt.Println(pre)
}

上述就是小編為大家分享的golang中怎么反轉(zhuǎn)鏈表了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章題目:golang中怎么反轉(zhuǎn)鏈表
當前路徑:http://muchs.cn/article40/ijojho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司電子商務(wù)、云服務(wù)器、微信公眾號、網(wǎng)站策劃面包屑導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)