Heim  >  Artikel  >  Backend-Entwicklung  >  In einem Artikel wird erläutert, wie eine umgekehrt verknüpfte Liste in Golang implementiert wird

In einem Artikel wird erläutert, wie eine umgekehrt verknüpfte Liste in Golang implementiert wird

藏色散人
藏色散人nach vorne
2021-07-19 14:37:002993Durchsuche

Problem: Umkehren einer einfach verknüpften Liste.

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

Machen wir uns zunächst mit der Datenstruktur der verknüpften Liste vertraut:

Es gibt zwei Elemente im Knoten der verknüpften Liste:

  • value
  • Pointer
type ListNode struct {
    Val  int
    Next *ListNode
}

Next zeigt auf den nächsten Knoten

Diese Frage lautet also tatsächlich: Der Zeiger zeigt auf den vorherigen Knoten. gt ;3->4-& gt; 5

1->2->3->4->511->nil2->-3> ;->4->52->3->4->5->1->nil22->1->nil 3->4->53->4->5->2->1->nil33->2->1-> ;nil4->54->5->3->2->1->nil44->3->2-> ;1->nil55->4->3->2->1->nilpre die Frontperson von ist cur (pre = cur)cur ist das verknüpfte Listenelement hinter der aktuellen Position (cur = cur.Next) cur.Next muss mit pre verbunden sein (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)
}
Sie können sehen, dass
Vollständiger Code: Weitere technische Artikel zum Thema Golang finden Sie in der Tutorial-Kolumne von golang !

Das obige ist der detaillierte Inhalt vonIn einem Artikel wird erläutert, wie eine umgekehrt verknüpfte Liste in Golang implementiert wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen