【发布时间】:2021-12-15 14:54:57
【问题描述】:
如何创建一个简单的函数来合并两个链表,使我可以使用“合并(自我,其他)”之类的方法执行以下操作,而且我不需要对合并的列表进行排序 -我想简单地添加合并功能,我已经包含了驱动程序代码来给出一个想法
ls = [2,3,4,5]
ls2 = [42, 17]
ls.merge(ls2) # should change ls to [2,3,4,5,42,17]
ls2.head.data = 24 # should change ls2 to [24,17] and ls to [2,3,4,5,24,17]
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def merge_sorted(self, llist):
p = self.head
q = llist.head
s = None
if not p:
return q
if not q:
return p
if p and q:
if p.data <= q.data:
s = p
p = s.next
else:
s = q
q = s.next
new_head = s
while p and q:
if p.data <= q.data:
s.next = p
s = p
p = s.next
else:
s.next = q
s = q
q = s.next
if not p:
s.next = q
if not q:
s.next = p
return new_head
llist_1 = LinkedList()
llist_2 = LinkedList()
llist_1.append(1)
llist_1.append(5)
llist_1.append(7)
llist_1.append(9)
llist_1.append(10)
llist_2.append(2)
llist_2.append(3)
llist_2.append(4)
llist_2.append(6)
llist_2.append(8)
llist_1.merge_sorted(llist_2)
llist_1.print_list()
【问题讨论】:
-
所以您的
merge_sorted与您的问题无关?那你的尝试在哪里? -
代码块的前 4 行也没有意义:标准列表没有
merge方法。你能清理你的代码并展示你的尝试吗? -
我实际上正在处理两个问题,一个是我将要整理的合并方法,另一个是:stackoverflow.com/questions/69781184/…
-
是的,但这对我的 cmets 不适用。
-
我的错,我没有删除
标签: python list sorting merge linked-list