首页 > 解决方案 > 为什么每次循环迭代都没有更新我的链表输出变量?

问题描述

我编写了这段代码来添加两个存储为链表的数字,以解决 Leetcode 上的一个问题。我得到一个输出,表明我的变量没有在 while 循环中更新,但我不明白为什么。我错过了什么?

# Definition for singly-linked list.
#class ListNode:
#    def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        carrybit = 0
        output = ListNode(0)
        iteration = 0
        while l1.next != None or l2.next != None:
            temp = ListNode((l1.val + l2.val + carrybit)%10)
            if l1.val + l2.val + carrybit > 9:
                carrybit = 1
            else:
                carrybit = 0

            temp2 = output.next
            while temp2 != None:
                temp2 = temp2.next
            temp2 = temp


            l1 = l1.next
            l2 = l2.next

        return output

标签: pythonclasslinked-list

解决方案


您正在为局部temp2变量赋值。这样做只会改变temp2,否则不会修改output.next以前的。temp2.next

output.next如果要更改它,您需要实际分配给它。


推荐阅读