PTA 两个有序链表序列的合并
时间: 2023-09-13 13:10:39 浏览: 115
PTA的两个有序链表序列的合并可以通过以下步骤完成:
1. 定义一个新的链表头指针,并初始化为空。
2. 使用两个指针分别指向两个链表的头结点。
3. 比较两个指针指向的结点的值,将较小的值插入到新链表中,并将指针后移一位。
4. 重复步骤3,直到其中一个链表为空。
5. 将另一个链表剩余的结点直接插入到新链表的末尾。
6. 返回新链表的头指针。
下面是一个示例实现的代码:
```python
def Merge(L1, L2):
dummy = ListNode(0) # 创建一个带头结点的新链表
curr = dummy # 当前指针指向新链表的尾部
p1, p2 = L1, L2 # 分别指向两个链表的头结点
while p1 and p2:
if p1.val <= p2.val:
curr.next = p1
p1 = p1.next
else:
curr.next = p2
p2 = p2.next
curr = curr.next
if p1:
curr.next = p1
else:
curr.next = p2
return dummy.next # 返回新链表的头指针
```
这个函数会将两个有序链表L1和L2合并为一个非递减的整数序列,并返回合并后的链表的头指针。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [两个有序链表的合并](https://download.csdn.net/download/weixin_44162803/11018807)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [PTA 两个有序链表序列的合并](https://blog.csdn.net/weixin_47160526/article/details/106452789)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [PTA:两个有序链表序列的合并](https://blog.csdn.net/qq_45624989/article/details/105539885)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]