题目
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
示例1
输入
{1,3,5},{2,4,6}
返回值
{1,2,3,4,5,6}
一、思路
【思路】
- 先判断边界条件
- 对比头结点,记录最后要返回的头结点
- 每次完成头结点的比较,数值小的节点合并入链表,数值小的链表头结点后移
【边界情况】
- 两个链表至少一个为空
- 一个链表用完,另一个链表仍然有元素,直接并入大链表
二、代码
# -*- coding:utf-8 -*-
class Solution:
# 返回合并后列表
def Merge(self, pHead1, pHead2):
# write code here
if not pHead1:return pHead2
if not pHead2:return pHead1
if pHead1.val <pHead2.val:
start=pHead1
pHead1=pHead1.next
else:
start=pHead2
pHead2=pHead2.next
flag=start
while (pHead1 and pHead2):
if pHead1.val < pHead2.val:
flag.next=pHead1
flag=pHead1
pHead1=pHead1.next
else:
flag.next=pHead2
flag=pHead2
pHead2=pHead2.next
if pHead1:flag.next=pHead1
if pHead2:flag.next=pHead2
return start
三、总结
注意边界条件就行