Связанный список не меняется в Голанге - PullRequest
0 голосов
/ 15 сентября 2018

Мой вопрос в том, что когда я сделал head , укажите head.next

вход . Значение по-прежнему остается 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 Ответ

0 голосов
/ 15 сентября 2018

Здесь исправлено:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...