剑指offer:合并两个排序的链表

一、问题分析

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。如输入{1,3,5},{2,4,6},输出{1,2,3,4,5,6}

首先比较两个链表的头节点,如果表1的头节点更小,那么就固定表1的头节点,接下来关注表1的next部分;

表1的next部分的头节点继续和表2的头节点进行比较(出现了递归),如果表1的next部分的头节点更小,则固定它,接下来关注其余next部分;

 

 

二、代码实现:

class Solution:
    # 返回合并后列表
    def Merge(self, pHead1, pHead2):
        # write code here
        if pHead1 is None:
            return pHead2
        if pHead2 is None:
            return pHead1
        if pHead1.val < pHead2.val:
            pHead1.next = self.Merge(pHead1.next,pHead2)
            return pHead1
        else:
            pHead2.next = self.Merge(pHead1,pHead2.next)
            return pHead2

 

posted @ 2021-02-04 16:51  小千北同学超爱写代码  阅读(45)  评论(0编辑  收藏  举报