我的问题是,当我将 head 指向 head.next 时
输入。Val仍然保持1而不是2(下一个值)。
type ListNode struct {
Val int
Next *ListNode
}
func test(head *ListNode) *ListNode {
head = head.Next
return head
}
func main() {
var input, input2 ListNode
input = ListNode{Val: 1, Next: &input2}}
input2 = ListNode{Val: 2}
test(&input)
fmt.Println(input.Val)
}
答案 0 :(得分:0)
此处已修复:
https://play.golang.org/p/VUeqh71nEaN
package main
import (
"fmt"
)
type ListNode struct {
Val int
Next *ListNode
}
func test(head *ListNode) *ListNode {
head = head.Next
return head
}
func main() {
var input1, input2 ListNode
input1 = ListNode{Val: 1, Next: &input2}
input2 = ListNode{Val: 2, Next: &input1}
input := test(&input1)
fmt.Println(input.Val)
}
输出
2
问题在于您不使用test
函数的返回值,并且传递了一个没有Next
值的节点。