两个循环单链表的合并完整代码
时间: 2024-10-10 11:10:31 浏览: 6
合并两个循环单链表的完整代码通常是在链表操作中常见的问题,这里是一个基本的Python示例,假设我们有两个`ListNode`类型的链表:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def mergeTwoLists(l1, l2):
if not l1:
return l2
elif not l2:
return l1
# 创建一个新的头节点作为合并结果
head = ListNode()
current = head
while True:
# 比较两个链表当前节点的值并选择较小的一个
if l1.val <= l2.val:
current.next = l1
l1 = l1.next
else:
current.next = l2
l2 = l2.next
# 检查是否到达了链表的末尾
if not l1 or not l2:
current.next = l1 if l1 else l2
break
current = current.next
return head.next
```
在这个代码里,我们首先检查两个链表是否有任何一个为空,然后创建一个新链表`head`并初始化一个指针`current`指向它。接着进入一个无限循环,在循环中比较两个链表的当前节点值,将较小的那个节点添加到新的链表中,并移动相应的链表指针。当其中一个链表遍历完时,我们将另一个链表剩余部分接在最后。