我希望我的L3链表像这样交替L1和L2的值
1,11,2,12,3,13,4,14

我尝试了下面的代码,但我认为L3列表在每次迭代时都会重置(“ p3 = Cellule(p1.entier)”行),我找不到创建L3的方法来解决我的问题。

class Cellule(object):
def __init__(self, entier):
    self.entier=entier
    self.suiv=None
L1=Cellule(1)
L1.suiv=Cellule(2)
L1.suiv.suiv=Cellule(3)
L1.suiv.suiv.suiv=Cellule(4)

L2=Cellule(11)
L2.suiv=Cellule(12)
L2.suiv.suiv=Cellule(13)
L2.suiv.suiv.suiv=Cellule(14)

p1=L1
p2=L2
L3=Cellule(0)
p3=L3

while p1.suiv!=None:
    p3=Cellule(p1.entier)
    p3=p3.suiv
    p3=Cellule(p2.entier)
    p2=p2.suiv
    p1=p1.suiv

p4=L3
while p4.suiv!=None:
    print(p4.entier)
    p4=p4.suiv


希望您能提供帮助,谢谢

最佳答案

尝试这个:

class Cellule(object):
    def __init__(self, entier):
        self.entier=entier
        self.suiv=None

L1=Cellule(1)
L1.suiv=Cellule(2)
L1.suiv.suiv=Cellule(3)
L1.suiv.suiv.suiv=Cellule(4)

L2=Cellule(11)
L2.suiv=Cellule(12)
L2.suiv.suiv=Cellule(13)
L2.suiv.suiv.suiv=Cellule(14)

p1=L1
p2=L2
L3=Cellule(0)
p3=L3

while 1:
    p3.suiv = Cellule(p1.entier)
    p3 = p3.suiv
    p3.suiv = Cellule(p2.entier)
    p3 = p3.suiv
    p2 = p2.suiv
    p1 = p1.suiv
    if p1 == None and p2 == None:  # I assume that your two objects are the same length
        break

p4 = L3.suiv
while p4:
    print(p4.entier)
    p4 = p4.suiv


如果两个对象的长度不同,则可以在代码中添加一个判断语句,例如:

while 1:
    if p1:
        p3.suiv = Cellule(p1.entier)
        p3 = p3.suiv
        p1 = p1.suiv

    if p2:
        p3.suiv = Cellule(p2.entier)
        p3 = p3.suiv
        p2 = p2.suiv

    if p1 == None and p2 == None:
        break

10-06 02:01