【发布时间】:2019-08-10 20:11:32
【问题描述】:
我想知道是否有任何方法可以创建动态大小的数组以避免下面代码中的运行时错误。
错误:
恐慌:运行时错误:Go 中的索引超出范围
代码:
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func nextLargerNodes(head *ListNode) []int {
var a []int
var pha int
hNum := 0
currNode := head
pha = 0
for currNode.Next != nil {
iter := currNode.Next
hNum = currNode.Val
//phb = pha + 1
for(iter.Next != nil){
if hNum < iter.Val {
hNum = iter.Val
break
} else if hNum == iter.Val{
hNum = 0
break
}
iter = iter.Next
}
a[pha] = iter.Val
pha++
hNum = 0
currNode = currNode.Next
}
return a
}
【问题讨论】:
-
我收回了我的标志,但这里有一些可能更有帮助的东西:stackoverflow.com/questions/3387273/…
-
a = append(a, iter.Val),你不再需要pha了。 -
1.不,Go 中没有动态大小的数组。 2. 你根本没有使用数组。您正在使用切片。 3. 切片是动态调整大小的。
标签: go