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

思路:

1.新建两个链表mergeHead和p,初始值为90。

2.判断pHead1.val和pHead2.val值的关系。

若pHead1.val>=pHead2.val,将pHead2放入mergeHead.next 然后pHead2指针往后移一步。

若pHead1.val<pHead2.val,将pHead1放入mergeHead.next 然后pHead1指针往后移一步。

最后mergeHead指针往后移一步。继续循环直到pHead1和pHead2有一个为空就结束。

3.再依次判断pHead1和pHead2是否为空,若没有则添加到mergeHead里。最终返回p.next。

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    # 返回合并后列表
    def Merge(self, pHead1, pHead2):
        # write code here
        mergeHead = ListNode(90)
        p = mergeHead
        while pHead1 and pHead2:
            if pHead1.val >= pHead2.val:
                mergeHead.next = pHead2
                pHead2 = pHead2.next
            else:
                mergeHead.next = pHead1
                pHead1 = pHead1.next
            mergeHead = mergeHead.next
        if pHead1:
            mergeHead.next = pHead1
        elif pHead2:
            mergeHead.next = pHead2
        return p.next

猜你喜欢

转载自blog.csdn.net/weixin_43160613/article/details/84748617