Здравей Kojin, благодаря ти за страхотния урок. Много полезно. Бихте ли ми помогнали с въпроса по-долу? Дефинирах метод за изтриване, който приема стойност и методът ще изтрие възел със същата стойност. Но защо, ако дадената стойност е равна на стойността на главата, тогава методът няма да промени самия свързан списък; ако дадената стойност не е равна на главата, тогава методът ще промени самия свързан списък? Благодаря ви предварително.

class Node:
def __init__(self, val):
self.val = val
self.next = None
def traverse(self):
node = self
while node:
print node.val
node = node.next

def traverse(self):
node = self
while node:
print node.val
node = node.next

def delete(self, value):
head = self
p0 = self
p1 = self.next
if head.val == value:
return head.next
else:
докато p1 не е None:
if p1.val == стойност:
if p1.next е None:
p0.next = None
return head
else:
p0.next = p1.next
p1 = p1.next
else:
p0 = p0.next
p1 = p1.next
връщане на главата

възел1 = възел(1)
възел2 = възел(2)
възел3 = възел(2)
възел4 = възел(3)
възел1.следващ = възел2
възел2 .next = node3
node3.next = node4

# Ако дадена стойност 1 е равна на главата, това няма да промени самия списък.

node1.delete(1)

node1.traverse()

node1.delete(1).traverse()

# При дадена стойност 2, която не е равна на главата, тя ще промени самия списък.

node1.delete(2)

node1.traverse()