diff --git a/fullstack-cert/python-projects/linked-list/main.py b/fullstack-cert/python-projects/linked-list/main.py new file mode 100644 index 00000000..a29bfd53 --- /dev/null +++ b/fullstack-cert/python-projects/linked-list/main.py @@ -0,0 +1,37 @@ +class LinkedList: + class Node: + def __init__(self, element): + self.element = element + self.next = None + + def __init__(self): + self.length = 0 + self.head = None + + def is_empty(self): + return self.length == 0 + + def add(self, element): + node = self.Node(element) + if self.is_empty(): + self.head = node + else: + current_node = self.head + while current_node.next is not None: + current_node = current_node.next + current_node.next = node + self.length += 1 + + def remove(self, element): + previous_node = None + current_node = self.head + while current_node is not None and current_node.element != element: + previous_node = current_node + current_node = current_node.next + if current_node is None: + return + elif previous_node is not None: + previous_node.next = current_node.next + else: + self.head = current_node.next + self.length -= 1 \ No newline at end of file