为了账号安全,请及时绑定邮箱和手机立即绑定

我无法创建长链接列表

我无法创建长链接列表

Go
沧海一幻觉 2023-03-21 17:08:08
package mainfunc 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 个节点中断一次。有关详细信息,请参见下图:
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您的链接列表工作正常,但它不是创建链接列表的正确方法。您只有 3 个节点的原因是您的调试器跟踪限制。我写了一个打印循环来显示链表中的值。


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

}

我还编写了另一个代码来展示如何以正确的方式创建链表。


package main


import "fmt"


func main() {

    start := &ListNode{}

    node := start

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

        node.Val = i

        node.Next = &ListNode{}

        node = node.Next

    }

    for node := start; node.Next != nil; node = node.Next {

        fmt.Printf("%d -> ", node.Val)

    }

}


type ListNode struct {

    Val  int

    Next *ListNode

}


查看完整回答
反对 回复 2023-03-21
  • 1 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号