猿问

链表在 Golang 中不会改变

我的问题是,当我将head指向head.next时


input.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)

}


烙印99
浏览 76回答 1
1回答

ABOUTYOU

这里是固定的:package mainimport (    "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。
随时随地看视频慕课网APP

相关分类

Go
我要回答