亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang中怎么反轉鏈表

發布時間:2021-07-19 15:02:20 來源:億速云 閱讀:139 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關golang中怎么反轉鏈表,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

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

首先先認識一下鏈表這個數據結構:

鏈表節點中有兩個元素:

  • 指針

type ListNode struct {
    Val  int
    Next *ListNode
}

Next指向下一個節點

golang中怎么反轉鏈表

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

位置調換次數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"

//鏈表節點
type ListNode struct {
    Val  int
    Next *ListNode
}

//反轉鏈表的實現
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中怎么反轉鏈表了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

竹北市| 含山县| 莲花县| 衢州市| 佛山市| 辽阳市| 景泰县| 韶山市| 文安县| 乐山市| 清苑县| 东方市| 辽阳市| 南漳县| 凉山| 古交市| 茌平县| 祁东县| 精河县| 海淀区| 兴和县| 东山县| 三明市| 博爱县| 德化县| 乌海市| 西贡区| 凤庆县| 英德市| 靖宇县| 静海县| 卢氏县| 大宁县| 汕尾市| 克什克腾旗| 灌南县| 疏勒县| 高唐县| 蒙自县| 康平县| 霍山县|