面试题25:合并两个排序的链表

# -*- 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
        # 1.先判断某一个链表为空的情况
        # 2.之后用递归的方法
        if pHead1 == None:
            return pHead2
        if pHead2 == None:
            return pHead1
        
        newHead = None
        
        if pHead1.val < pHead2.val:
            newHead = pHead1
            newHead.next = self.Merge(newHead.next,pHead2)
        else:
            newHead = pHead2
            newHead.next = self.Merge(pHead1,newHead.next)
            
        return newHead

  也可以采用非递归的方法

 

posted @ 2019-08-07 11:01  lililili——  阅读(180)  评论(0)    收藏  举报