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

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

18.设计算法,求两个有序单链表la和lb表示的集合的差集Ic,Ic也为有序单链表。

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

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

def union(la: LinkList, lb: LinkList) -> LinkList:
    pa = la.head.next
    pb = lb.head.next
    lc = LinkList()
    pc = lc.head

    while pa and pb:
        if pa.data < pb.data:
            pc.next = pa
            pc = pa
            pa = pa.next
        elif pa.data > pb.data:
            pc.next = pb
            pc = pb
            pb = pb.next
        else:
            pc.next = pa
            pc = pa
            pa = pa.next
            pb = pb.next
    #拼接剩余部分
    if pa:
        pc.next = pa
    else:
        pc.next = pb
    return lc

题目信息

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