链表 python 牛客_牛客网《剑指offer》之Python2.7实现:合并两个排序的链表
題目描述
輸入兩個(gè)單調(diào)遞增的鏈表,輸出兩個(gè)鏈表合成后的鏈表,當(dāng)然我們需要合成后的鏈表滿足單調(diào)不減規(guī)則。
思路
依次遍歷兩個(gè)鏈表,比較兩個(gè)鏈表的元素,采用尾插法,小的先插入鏈表,大的后插入鏈表
代碼# -*- 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
注意
錯(cuò)誤代碼:# -*- 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:#若其中一個(gè)為空,另一個(gè)不為空,也是可以滿足題意的。見(jiàn)代碼下方的測(cè)試用例
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
測(cè)試用例:
{1,3,5},{}
對(duì)應(yīng)輸出應(yīng)該為:
{1,3,5}
你的輸出為:
{}
總結(jié)
以上是生活随笔為你收集整理的链表 python 牛客_牛客网《剑指offer》之Python2.7实现:合并两个排序的链表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何在Win11重置系统中保留个人文件
- 下一篇: python怎么导入apschedule