首页 > 解决方案 > python中的反向链表

问题描述

我写了一个 Python 反向链表,但在运行时出现错误:

class Node:
    def __init__(self, data):
        self.items = data
        self.ref = None

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

    def reverse_linkedlist(self):
        prev = None
        if self.head == None:
            print("List has no elements")
            return
        n = self.head
        while n is not None:
            next = n.ref
            n.ref = prev
            prev = n
            n = next
            self.head = prev

        return self.items


mylinklist = LinkList()
A = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

B=mylinklist.reverse_linkedlist(A)
print(B)

错误:

B=mylinklist.reverse_linkedlist(A)
  TypeError: reverse_linkedlist() takes 1 positional argument but 2
    were given
  1. 你能解决这个错误吗?
  2. 另外,我怎样才能只反转给定列表的 15 项?

标签: pythonlinked-listreverse

解决方案


我更改了代码,但出现了新错误:

class Node:
    def __init__(self, data):
        self.items = data
        self.ref = None

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

    def reverse_linkedlist(self, A):
        prev = None
        if self.head == None:
        print("List has no elements")
        return
    n = self.head
    while n is not None:
        next = n.ref
        n.ref = prev
        prev = n
        n = next
        self.head = prev

    return n

 mylinklist = LinkList()
 A = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
 print([l for l in mylinklist.reverse_linkedlist(A[:15])])

错误:TypeError:“NoneType”对象不可迭代


推荐阅读