我无法创建长链接列表

package main


func main() {

    var arr [99]ListNode

    for i := 0; i < 99; i++ {

        var tempArr ListNode

        tempArr.Val = i

        arr[i] = tempArr

    }

    for i := 0; i < 98; i++ {

        arr[i].Next = &arr[i+1]

    }

}


type ListNode struct {

    Val  int

    Next *ListNode

}

我想创建一个包含 99 个元素的链表,但它每 3 个节点中断一次。有关详细信息,请参见下图:

http://img1.mukewang.com/641974210001640804830247.jpg

沧海一幻觉
浏览 126回答 1
1回答

慕尼黑8549860

您的链接列表工作正常,但它不是创建链接列表的正确方法。您只有 3 个节点的原因是您的调试器跟踪限制。我写了一个打印循环来显示链表中的值。package mainfunc main() {&nbsp; &nbsp; var arr [99]ListNode&nbsp; &nbsp; for i := 0; i < 99; i++ {&nbsp; &nbsp; &nbsp; &nbsp; var tempArr ListNode&nbsp; &nbsp; &nbsp; &nbsp; tempArr.Val = i&nbsp; &nbsp; &nbsp; &nbsp; arr[i] = tempArr&nbsp; &nbsp; }&nbsp; &nbsp; for i := 0; i < 98; i++ {&nbsp; &nbsp; &nbsp; &nbsp; arr[i].Next = &arr[i+1]&nbsp; &nbsp; }}type ListNode struct {&nbsp; &nbsp; Val&nbsp; int&nbsp; &nbsp; Next *ListNode}我还编写了另一个代码来展示如何以正确的方式创建链表。package mainimport "fmt"func main() {&nbsp; &nbsp; start := &ListNode{}&nbsp; &nbsp; node := start&nbsp; &nbsp; for i := 0; i < 100; i++ {&nbsp; &nbsp; &nbsp; &nbsp; node.Val = i&nbsp; &nbsp; &nbsp; &nbsp; node.Next = &ListNode{}&nbsp; &nbsp; &nbsp; &nbsp; node = node.Next&nbsp; &nbsp; }&nbsp; &nbsp; for node := start; node.Next != nil; node = node.Next {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Printf("%d -> ", node.Val)&nbsp; &nbsp; }}type ListNode struct {&nbsp; &nbsp; Val&nbsp; int&nbsp; &nbsp; Next *ListNode}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go