合并两个有序的单链表
时间: 2024-10-08 10:27:27 浏览: 56
合并两个有序的单链表是一种常见的链表操作,通常涉及到迭代或递归的方式来完成。这里是一个基本的步骤描述:
创建一个新的头节点
newHead
,它将作为合并后的链表的起始点,初始化为None
或null
。定义两个指针,分别指向两个输入链表的头节点
p1
和p2
。比较
p1
和p2
的值。如果p1
的值小于或等于p2
的值,将p1
点向的元素添加到新链表,并将p1
指针向前移动;否则,将p2
点向的元素添加到新链表,并将p2
指针向前移动。重复上述步骤,直到其中一个链表为空。此时,剩下的非空链表就是结果。
将剩余的那个链表的头节点设为
newHead.next
。
这是一个伪代码示例:
def merge_sorted_lists(l1, l2):
newHead = ListNode(None) # 新链表的头
current = newHead
while l1 and l2:
if l1.val <= l2.val:
current.next = l1
l1 = l1.next
else:
current.next = l2
l2 = l2.next
current = current.next
if l1 is not None:
current.next = l1
elif l2 is not None:
current.next = l2
return newHead.next
相关推荐


















