fork download
  1. class Node:
  2. def __init__(self, value = None, next = None):
  3. self.value = value
  4. self.next = next
  5.  
  6. class LinkedList:
  7. def __init__(self):
  8. self.first = None
  9. self.last = None
  10. self.length = 0
  11.  
  12. def __str__(self):
  13. if self.first != None:
  14. current = self.first
  15. out = 'LinkedList [\n' +str(current.value) +'\n'
  16. while current.next != None:
  17. current = current.next
  18. out += str(current.value) + '\n'
  19. return out + ']'
  20. return 'LinkedList []'
  21.  
  22. def clear(self):
  23. self.__init__()
  24.  
  25. def add(self, x):
  26. self.length+=1
  27. if self.first == None:
  28. #self.first и self.last будут указывать на одну область памяти
  29. self.last = self.first = Node(x, None)
  30. else:
  31. #здесь, уже на разные, т.к. произошло присваивание
  32. self.last.next = self.last = Node(x, None)
  33.  
  34.  
  35. L = LinkedList()
  36. L.add(1)
  37. L.add(2)
  38. L.add(3)
  39. print(L)
Success #stdin #stdout 0.02s 27712KB
stdin
Standard input is empty
stdout
LinkedList [
1
2
3
]