链表 python 牛客_牛客网《剑指offer》之Python2.7实现:合并两个排序的链表

题目描述

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

思路

依次遍历两个链表,比较两个链表的元素,采用尾插法,小的先插入链表,大的后插入链表

代码# -*- 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

phNew = ListNode(0);

tmp = phNew

while pHead1 != None and pHead2 != None:

if pHead1.val > pHead2.val:

tmp.next = pHead2

pHead2 = pHead2.next

else:

tmp.next = pHead1

pHead1 = pHead1.next

tmp = tmp.next#注意将待插入链表头后移

if (pHead1 != None):

tmp.next = pHead1

if (pHead2 != None):

tmp.next = pHead2

return phNew.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

if pHead1 == None or pHead2 == None:#若其中一个为空,另一个不为空,也是可以满足题意的。见代码下方的测试用例

return

phNew = ListNode(0);

tmp = phNew

while pHead1 != None and pHead2 != None:

if pHead1.val > pHead2.val:

tmp.next = pHead2

pHead2 = pHead2.next

else:

tmp.next = pHead1

pHead1 = pHead1.next

tmp = tmp.next

if (pHead1 != None):

tmp.next = pHead1

if (pHead2 != None):

tmp.next = pHead2

return phNew.next

测试用例:

{1,3,5},{}

对应输出应该为:

{1,3,5}

你的输出为:

{}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值