将两个非递减的有序链表合并为一个非递增的有序链表。具体方法
时间: 2024-03-25 21:32:39 浏览: 121
以下是将两个非递减的有序链表合并为一个非递增的有序链表的方法:
1. 创建一个新的链表作为合并后的链表。
2. 使用两个指针分别指向两个链表的头节点。
3. 比较两个指针指向的节点的值,将较小的节点添加到新链表中,并将指针向后移动一位。
4. 重复步骤3,直到其中一个链表的指针为空。
5. 将剩余的链表连接到新链表的末尾。
6. 返回新链表作为合并后的链表。
以下是示例代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def mergeTwoLists(l1, l2):
dummy = ListNode(0)
curr = dummy
while l1 and l2:
if l1.val <= l2.val:
curr.next = l1
l1 = l1.next
else:
curr.next = l2
l2 = l2.next
curr = curr.next
if l1:
curr.next = l1
if l2:
curr.next = l2
return dummy.next
# 示例数据
# 链表1: 1 -> 3 -> 5
l1 = ListNode(1)
l1.next = ListNode(3)
l1.next.next = ListNode(5)
# 链表2: 2 -> 4 -> 6
l2 = ListNode(2)
l2.next = ListNode(4)
l2.next.next = ListNode(6)
# 合并链表
merged = mergeTwoLists(l1, l2)
# 打印合并后的链表
while merged:
print(merged.val, end=" ")
merged = merged.next
# 输出:6 5 4 3 2 1
```
阅读全文