Python – путаница со связанным спискомPython

Программы на Python
Ответить
Anonymous
 Python – путаница со связанным списком

Сообщение Anonymous »

class Node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next

class LinkedList:
def __init__(self):
self.head = None

def insert_at_end(self,data): >>> this function is working
print('self.head: ', self.head)
if self.head is None:
self.head = Node(data, None)
return

itr = self.head

while itr.next != None:
itr = itr.next

itr.next = Node(data, None)

def insert_at_end(self,data): >>> this function is NOT working
n = self.head
node = Node(data, None)
if n is None:
n = node
return

while n.next != None:
n = n.next
n.next = node

Когда я добавляю узел в конце, функция, которая не работает, дает мне пустой список, но работающая функция дает мне список. Я думаю, что мне не хватает основного момента, но я не могу понять. Я новичок в Python и изучаю DSA.
if __name__ == '__main__':
ll = LinkedList()
ll.insert_at_end(100)
ll.insert_at_end(101)
ll.print_ll()

Рабочая функция дала мне 100-->101-->
Нерабочая функция дала мне пустой связанный список.
Ниже — это функция печати, которую я использовал в обоих случаях.
def print_ll(self):
if self.head == None:
print("Empty Linked List")
return

n = self.head
strll = ''

while n != None:
strll += str(n.data) + '-->'
print("linkedlist: ", strll)

n = n.next


Подробнее здесь: https://stackoverflow.com/questions/776 ... -confusion
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»