python - 为什么每次循环迭代都没有更新我的链表输出变量?
问题描述
我编写了这段代码来添加两个存储为链表的数字,以解决 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
解决方案
您正在为局部temp2
变量赋值。这样做只会改变temp2
,否则不会修改output.next
以前的。temp2.next
output.next
如果要更改它,您需要实际分配给它。
推荐阅读
- csv - 当 Jmeter 的响应数据是 XML 格式时,在输出的 CSV 文件中我们生成的格式是不可读的。如何克服它
- javascript - “lazy-initialize” In ChartJS
- php - 我想在下面给出的代码中在 php 和 html 中使用越来越少的变量如何减少变量的数量
- php - 尝试使用 PHP 从 json google API 中提取数据
- javascript - 滚动到底部解决方案并不总是到达页面的绝对末尾
- java - Netty - 通过 PooledByteBufAllocator 分配可重用缓冲区列表
- ios - 列出 ios 的各种图层动画键
- out-of-memory - 如何在 jboss eap 生产服务器中监控 Java 堆内存使用情况
- java - 从数据库获取 URL 后的 URL 访问安全性及其在 java 文件中的角色
- java - 如何将 string(R.id.btn_0) 转换为 int 类型 - Espresso