python 链表两数相加
时间: 2025-01-04 12:34:20 浏览: 75
### Python 实现链表两个数字相加
为了实现两个非空链表所表示的非负整数相加,可以采用逐位相加的方法,并处理好进位情况。下面是一个完整的解决方案:
#### 定义链表节点类
首先定义一个简单的链表节点类 `ListNode` 来构建链表。
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
```
#### 主函数:两数相加
该函数接收两个链表作为参数,返回一个新的链表,其值为两者之和。
```python
def addTwoNumbers(l1: ListNode, l2: ListNode) -> ListNode:
dummy_head = ListNode(0)
current = dummy_head
carry = 0
while l1 or l2 or carry != 0:
sum_val = (l1.val if l1 else 0) + (l2.val if l2 else 0) + carry
carry = sum_val // 10
new_node = ListNode(sum_val % 10)
current.next = new_node
current = new_node
if l1 is not None:
l1 = l1.next
if l2 is not None:
l2 = l2.next
return dummy_head.next
```
这段代码通过创建虚拟头节点简化了边界条件判断;遍历过程中不断更新当前指针位置以及进位标志;当任意一条链结束但仍存在未处理完的另一条链或仍有剩余进位时继续循环直到完成全部运算[^1]。
阅读全文
相关推荐


















