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

算法14~19中,la、lb、Ic为各个单链表的头指针,直接用头指针表示和操作单链表。19·设计算法,求两个有序单链表la和lb表示的集合的交集lc,Ic也为有序单链表。

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

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

def intersection(la:LinkList, lb:LinkList):
    pa = la.head.next
    pb = lb.head.next
    pre = la.head

    while pa and pb:
        if pa.data < pb.data:
            # 删除pa
            pre.next = pa.next
            pa = pre.next
        elif pa.data > pb.data:
            pb = pb.next
        else:
            pre = pa
            pa = pa.next
            pb = pb.next
    # 删除la后面剩余结点
    pre.next = None

题目信息

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