为了账号安全,请及时绑定邮箱和手机立即绑定

链表在 Golang 中不会改变

链表在 Golang 中不会改变

Go
烙印99 2023-04-04 15:35:15
我的问题是,当我将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)}
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

这里是固定的:

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。


查看完整回答
反对 回复 2023-04-04
  • 1 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信