Python ошибка для функции добавления связанного списка - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь узнать реализацию связанного списка с python3. Мой код выдает ошибку «TypeError: Node () не принимает аргументов», когда я вызываю функцию добавления.


class Node:
    def _init_(self,data):
        self.data=data
        self.next=None
class LinkedList:
    def _init_(self):
        self.head=None

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

    def append(self,data):
        new_node=Node(data)
        if self.head is None:
            self.head = new_node
            return
        last_node = self.head
        while last_node.next:
            last_node=last_node.next
        last_node.next=new_node


llist = LinkedList()
llist.append('A')
llist.append('B')

Ошибка с кодом выше

TypeError                                 Traceback (most recent call last)
<ipython-input-4-893f725212cd> in <module>
      1 llist = LinkedList()
----> 2 llist.append('A')
      3 llist.append('B')

<ipython-input-3-a7f4eb6e69c9> in append(self, data)
     14 
     15     def append(self,data):
---> 16         new_node=Node(data)
     17         if self.head is None:
     18             self.head = new_node

TypeError: Node() takes no arguments

Мой полный код написан выше. Что не так с кодом?

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Ошибка в коде не говорит о том, что Node () не принимает никаких аргументов, но пытается объяснить, что Node () не должен принимать никаких аргументов при инициализации.

I Я не знаю много о самом Node, но, посмотрев на ошибку, вот к чему я пришел.

Это связано с тем, что вы допустили простую синтаксическую ошибку при выполнении функции __init__. У вас есть одно подчеркивание около _init_, тогда как оно должно быть __init__ с двумя подчеркиваниями.

0 голосов
/ 17 марта 2020

Это должно быть

def __init__(self,data):

2 подчеркивания на каждой стороне init

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...