python定义2个链表,a: 0->1->2->3->4->NULL, b: 0->1->2->3->4->NULL,实现两个链表对应元素相加。
时间: 2024-09-16 12:03:12 浏览: 41
python-leetcode面试题解之第160题相交链表-题解.zip
在Python中,你可以通过创建一个辅助节点的方式来合并两个已排序的链表,并将它们对应位置的节点值相加。这里是一个简单的步骤描述:
1. 定义一个新的链表结构,包含一个值(用于存储当前节点的和),以及前驱和后继节点引用。
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
```
2. 创建两个指针,分别指向两个输入链表的头节点,以及一个新的辅助链表,初始时辅助链表的头节点设为None。
```python
def add_two_numbers(a, b):
dummy_head = ListNode(0)
curr = dummy_head
carry = 0
while a is not None or b is not None:
# 获取当前节点的数值
x = a.val if a else 0
y = b.val if b else 0
# 计算当前节点的和加上上一节点的进位
sum_val = x + y + carry
# 更新节点值并处理进位
curr.next = ListNode(sum_val % 10)
carry = sum_val // 10
# 移动指针到下一个节点
curr = curr.next
# 如果其中一个链表还有剩余节点
if a:
a = a.next
if b:
b = b.next
# 如果最后还有进位,需要添加一个新节点
if carry > 0:
curr.next = ListNode(carry)
return dummy_head.next
```
阅读全文