python3中两个排序链表的交集?

2024-09-30 08:36:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码不能两个打印出新的列表,这是两个排序链接的交集列表。它无法访问函数内部的列表。请指出我代码中的错误。在我的代码中没有缩进问题,而且算法似乎也很好。在

class Node(object):

    def __init__(self,data):
        self.data = data
        self.next = None

class Linked(object):

    def __init__(self):
        self.head = None

    def push(self,n):
        new_node = Node(n)
        new_node.next = self.head
        self.head = new_node

    def print_list(self):
        current = self.head
        while current:
            print(current.data)
            current = current.next

    def intersect(self,l1,l2):
        l1 = l1.head
        l2 = l2.head
        dummy = cur = Node(0)
        while l1 and l2:
            if l2.data>l1.data:
                l1=l1.next
            elif l1.data>l2.data:
                l2=l2.next
            else:
                cur.next = l1 or l2
                l1 = l1.next
                l2 = l2.next
            cur = cur.next
        return dummy.next
llist = Linked()
llist1 = Linked()
llist.push(6)
llist.push(4)
llist.push(3)
llist.push(2)
llist.push(1)
llist1.push(8)
llist1.push(6)
llist1.push(4)
llist1.push(2)
l = Linked()
print(l.intersect(llist,llist1).data)

回溯如下:

^{pr2}$

Tags: 代码selfl1列表datadefcurrentpush
1条回答
网友
1楼 · 发布于 2024-09-30 08:36:28

{{{cd2>intersect方法获取实际节点:

def intersect(self,l1,l2):
    l1 = l1.head
    l2 = l2.head
    dummy = cur = Node(0)
    # ...

您可能不需要用两个参数调用intersect;这就足够让一个列表与另一个列表相交:

^{pr2}$

相关问题 更多 >

    热门问题