是否可以在 goLang 的循环内创建新的链表节点?

我需要为链表创建一个节点并在函数中返回头部。


每个节点的定义:


type ListNode struct {

    Val  int

    Next *ListNode

}


这是功能:



func addTwoNumbers(l1 *ListNode, l2 *ListNode) []string {


    calculateValue := func(l *ListNode) int {

        var sumsum int

        element := l

        weight := 1

        for element != nil {

            sumsum = sumsum + element.Val*weight

            weight = weight * 10

            element = element.Next

        }

        return sumsum

    }


    numstr := strconv.Itoa(calculateValue(l1) + calculateValue(l2))


    listsum := strings.Split(numstr, "")


    return listsum


}

现在函数返回一个字符串列表,每个字符串都应该分配给Val每个节点。(Val 是一个整数,现在列表是字符串,我稍后可以处理)。


因此,我们的想法是使用 for 循环遍历列表并创建节点并将它们在 for 内链接在一起。它看起来像这样(addTwoNumbers返回前的内部):


    for _, element := range listsum{

        


    }

有没有办法做到这一点?


杨魅力
浏览 80回答 1
1回答

青春有我

评论中提到的解决方案// create head with the value from first elementhead := &ListNode{ Val: listSum[0] }tail := head// range remaining valuesfor _, sum := range listSum[1:] {    node := &ListNode{ Val: sum }    tail.Next = node // append node to list    tail = node // change tail pointer to currently added node}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go