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个节点。有关更多信息,请参见下图:
答案 0 :(得分:4)
您的链表工作正常,尽管这不是创建链表的正确方法。您只有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
}