【问题标题】:Reverse Linkedlist in pythonpython中的反向链表
【发布时间】:2020-06-13 07:48:41
【问题描述】:

我写了一个 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 项?

【问题讨论】:

  • 您可以使用 reversed 函数来实现此 'print([l for l in reversed(A)])',如果您只想对前 15 个项目执行此操作,请使用 'print([l for l in reverse(A[:15])])
  • 您的 reverse_linkedlist() 方法不接受除自动提供的 self 实例参数以外的参数,因此传递它 A 没有意义(这是错误消息中提到的第二个位置参数) .
  • 当我在反向函数中出现错误时如何“..使用反向函数”:) ?
  • def reverse_linkedlist(self, A): 在这种情况下我也有这个错误: List has no elements None

标签: python linked-list reverse


【解决方案1】:

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

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' 对象不可迭代

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    相关资源
    最近更新 更多