剑指offer面试题【25】----合并两个排序链表【单链表】【Python】

题目描述

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

代码实现

# -*- 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
        p1=pHead1
        p2=pHead2
        p3=res=ListNode(0)
        
        
        while p1 and p2:
            if p1.val<=p2.val:
                p3.next=p1
                p1=p1.next
            else:
                p3.next=p2
                p2=p2.next
            p3=p3.next
        if p1==None:
            p3.next=p2
        if p2==None:
            p3.next=p1
        return res.next

测试代码 

node1=ListNode(1)
node2=ListNode(3)
node3=ListNode(5)
node4=ListNode(7)

node5=ListNode(2)
node6=ListNode(4)
node7=ListNode(6)
node8=ListNode(8)

node1.next=node2
node2.next=node3
node3.next=node4

node5.next=node6
node6.next=node7
node7.next=node8

p=Solution()
#print(p.Merge(node1,node5))
res=p.Merge(node1,node5)
print(res.next.next.next.next.next.next.next.val)

猜你喜欢

转载自blog.csdn.net/weixin_42702666/article/details/89877715
今日推荐