算法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