【问题标题】:AttributeError: 'NoneType' object has no attribute 'next' , This error is occuring on line 40AttributeError: 'NoneType' object has no attribute 'next' ,此错误发生在第 40 行
【发布时间】:2020-05-26 13:20:15
【问题描述】:
class node:
    def __init__(self, data):
        self.data = data
        self.next = None


class Stack:

# Constructor to initialize the root of linked list
    def __init__(self):
        self.root = None
        self.size=0

    def isEmpty(self):
        self.size=0

    # The method push to push element into
    # the stack
    def push(self, data):

        newNode = node(data)
        newNode.next = self.root
        self.root = newNode
        return

    def pop(self):

        # base case
        if (self.isEmpty()):
            return -1
        # delete a node from list
        temp = self.root
        self.root = self.root.next
        popped = temp.data
        return popped

【问题讨论】:

  • 您的问题是什么?您正在尝试使用 Nonenext 属性。错误消息基本上是不言自明的。什么不清楚?

标签: python data-structures linked-list


【解决方案1】:

self.isEmpty() 没有做您可能希望它做的事情。它只是将self.size 设置为0,并没有真正检查列表是否为空。

这意味着,当列表没有元素时(self.root 为 None),您将尝试将 self.root.next 分配给 self.root,但没有 self.root.next 这样的东西。

您可能想要修复 isEmpty() 以检查 self.root 是否为 None。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 2017-10-20
    • 2017-02-26
    • 2022-01-10
    • 2023-01-22
    相关资源
    最近更新 更多