我需要为链表创建一个节点并在函数中返回头部。每个节点的定义: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{ }有没有办法做到这一点?
1 回答
青春有我
TA贡献1784条经验 获得超8个赞
评论中提到的解决方案
// create head with the value from first element
head := &ListNode{ Val: listSum[0] }
tail := head
// range remaining values
for _, sum := range listSum[1:] {
node := &ListNode{ Val: sum }
tail.Next = node // append node to list
tail = node // change tail pointer to currently added node
}
- 1 回答
- 0 关注
- 79 浏览
添加回答
举报
0/150
提交
取消