面试题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
也可以采用非递归的方法

浙公网安备 33010602011771号