算法14~19中,la、lb、lc为各个单链表的头指针

算法14~19中,la、lb、lc为各个单链表的头指针,直接用头指针表示和操作单链表。

16.设计算法,将一个单链表la分裂成奇偶两个单链表,偶数位序的结点留在原表,奇数位序的形成一个新表lb

答案
class LNode:
    def __init__(self,data):
        self.data=data
        self.next=None

class LinkList:
    def __init__(self):
        self.head = LNode(None)

def split(la:LinkList)->LinkList:
    lb = LinkList()
    pa = la.head.next
    pb = lb.head
    pre = la.head
    cnt = 1

    while pa:
        if cnt %2 ==1:
            #奇数位摘下给lb
            pre.next = pa.next
            pb.next = pa
            pb = pa
            pa = pre.next
        else:
            pre = pa
            pa = pa.next
        cnt +=1
    pb.next = None
    return lb

题目信息

题号:8240
题型:简答题
知识点:Python
难度:普通