我的问题是,当我把头指向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)
}
这里是固定的:
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
值的节点。