2018-10-19 12:48:28 +00:00
|
|
|
class Node:
|
|
|
|
def __init__(self, item, next):
|
|
|
|
self.item = item
|
|
|
|
self.next = next
|
|
|
|
|
2019-10-05 05:14:13 +00:00
|
|
|
|
2018-10-19 12:48:28 +00:00
|
|
|
class LinkedList:
|
|
|
|
def __init__(self):
|
|
|
|
self.head = None
|
2020-05-31 09:37:45 +00:00
|
|
|
self.size = 0
|
2018-10-19 12:48:28 +00:00
|
|
|
|
|
|
|
def add(self, item):
|
|
|
|
self.head = Node(item, self.head)
|
2020-05-31 09:37:45 +00:00
|
|
|
self.size += 1
|
2018-10-19 12:48:28 +00:00
|
|
|
|
|
|
|
def remove(self):
|
|
|
|
if self.is_empty():
|
|
|
|
return None
|
|
|
|
else:
|
|
|
|
item = self.head.item
|
|
|
|
self.head = self.head.next
|
2020-05-31 09:37:45 +00:00
|
|
|
self.size -= 1
|
2018-10-19 12:48:28 +00:00
|
|
|
return item
|
|
|
|
|
|
|
|
def is_empty(self):
|
|
|
|
return self.head is None
|
2020-05-31 09:37:45 +00:00
|
|
|
|
|
|
|
def __len__(self):
|
|
|
|
"""
|
|
|
|
>>> linked_list = LinkedList()
|
|
|
|
>>> len(linked_list)
|
|
|
|
0
|
|
|
|
>>> linked_list.add("a")
|
|
|
|
>>> len(linked_list)
|
|
|
|
1
|
|
|
|
>>> linked_list.add("b")
|
|
|
|
>>> len(linked_list)
|
|
|
|
2
|
|
|
|
>>> _ = linked_list.remove()
|
|
|
|
>>> len(linked_list)
|
|
|
|
1
|
|
|
|
>>> _ = linked_list.remove()
|
|
|
|
>>> len(linked_list)
|
|
|
|
0
|
|
|
|
"""
|
|
|
|
return self.size
|