go - 我无法创建长链表
问题描述
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 个节点。有关更多信息,请参见下图:
解决方案
您的链接列表工作正常,尽管它不是创建链接列表的正确方法。您只有 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
}
推荐阅读
- elasticsearch - 更新了 Digital Ocean 的 Droplet 上的 Elasticservice,Elasticsearch 将不再启动
- datatable - 与其他数据一起显示 DataTable
- javascript - 未捕获的 TypeError 不是函数类方法
- python - 蟒蛇 | 将列表中的十六进制字符串转换为浮点数
- python - 模数和浮点数
- javascript - 当我将 css 和 js 分成文件并将它们链接回主 html 时,任务列表的工作方式不同
- kotlin - 在 Kotlin 中将 NumberFormat 转换为数字
- javascript - 字符串拆分以捕获图像 URL
- c++ - 无法理解如何将对象添加到动态数组并在 C++ 中打印它们
- redis - 在 RedisGraph 中增加一个节点属性