Advertisement
matacoder

Untitled

Nov 28th, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.97 KB | None | 0 0
  1. class Node:
  2.     def __init__(self, value, next_item=None):
  3.         self.value = value
  4.         self.next_item = next_item
  5.  
  6.     def __str__(self):
  7.         return self.value
  8.  
  9. def printy(node):
  10.     print(node)
  11.     while node.next_item is not None:
  12.         node = node.next_item
  13.         print(node)
  14.     print(node.next_item)
  15.  
  16. def solution(node, idx):
  17.     head = node
  18.     if idx == 0:
  19.         # удаляем голову, ставим вместо нее следующий нод
  20.         head = node.next_item
  21.         return head
  22.     while idx:
  23.         # перемещаемся по нодам до удаляемого
  24.         if node.next_item is not None:
  25.             # если следующий есть - старый сохраняем
  26.             # текущий перезаписываем следующим
  27.             prev = node
  28.             node = node.next_item
  29.         else:
  30.             # нодов не осталось, уходим
  31.             break
  32.         idx -= 1
  33.     # если мы вышли из цикла раньше чем айди стал 0
  34.     # то нам дали индекс больший, чем количество элементов
  35.     if idx != 0:
  36.         # поэтому вернем голову и все
  37.         return head
  38.     if node.next_item is not None:
  39.         # если следующий элемент есть, то
  40.         # убиваем наш нод, предыдущему даем ссылку на следующий
  41.         prev.next_item = node.next_item
  42.         node = None
  43.     else:
  44.         # элемент последний в связанном листе, значит
  45.         # предыдущий будет ссылать в никуда
  46.         prev.next_item = None
  47.     # print(node)
  48.  
  49. n = int(input())
  50. objs = [Node(input()) for i in range(0, n)]
  51. for i in range(n-1, 0, -1):
  52.     # print(objs[i])
  53.     objs[i].next_item = objs[i-1]
  54.  
  55. solution(objs[n-1], 4)
  56. printy(objs[n-1])
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement