С отступом, как он есть,
class Node(object):
def __init__(self, val):
self.val = val
self.next = None
def get_data(self):
return self.val
get_data
и следующие функции, включая set_next
, являются локальными для метода __init__
.
Итак, как говорится в ошибке, метод "Node class does not have a
set_next`.
Вам нужно вернуть их назад:
class Node(object):
def __init__(self, val):
self.val = val
self.next = None
def get_data(self):
return self.val
#... and the rest
Это даст вам дальнейшие проблемы, но исправит вашу первоначальную проблему.
Далее вы увидите
File "linked.py", line 28, in insert
new_node.set_next()
TypeError: set_next() missing 1 required positional argument: 'next'
Как было сказано в комментариях, вам нужно передать это значение.
Я подозреваю, что вы пытаетесь установить next
на головном или конечном узле на new_node
.