AttributeError: объект 'NoneType' не имеет атрибута 'next'. Эта ошибка возникает в строке 40 - PullRequest
0 голосов
/ 26 мая 2020
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

1 Ответ

0 голосов
/ 26 мая 2020

self.isEmpty() делает не то, что вы, вероятно, хотите. Он просто устанавливает self.size в 0 и не проверяет, пуст ли список.

Это означает, что когда в списке нет элементов (self.root is None), вы попытаетесь назначить self.root.next на self.root, но такого понятия как self.root.next не существует.

Вероятно, вы захотите исправить isEmpty(), чтобы проверить, соответствует ли self.root None.

...