def test_set_next(self): next_node = Node(data='two', next_node=None) node = Node(data='one', next_node=next_node) new_node = Node(data='three', next_node=None) node.next_node = new_node assert node.next_node == new_node
def push(self, value): if self.head == None: self.head = Node(value) else: new_node = Node(value) new_node.next_node = self.head self.head = new_node
def push(self, data): node = Node(data) if self.__head is None: self.__head = node else: node.next_node = self.__head self.__head = node self.__count += 1
def push(self, value): if self.head is None: self.head = Node(value) self.size += 1 else: new_node = Node(value) new_node.next_node = self.head self.head = new_node self.size += 1
def insert(self, value): """Insert a value onto the double linked list.""" try: for i in value: new_node_value = Node(i) if self.head is None: self.head = new_node_value self.length += 1 else: new_node_value.next_node = self.head new_node_value.next_node.prev = new_node_value self.head = new_node_value self.length += 1 except TypeError: new_node_value = Node(value) if self.head is None: self.head = new_node_value self.length += 1 else: new_node_value.next_node = self.head new_node_value.next_node.prev = new_node_value self.head = new_node_value self.length += 1
def remove_dupes(ll): output = set() curr = ll.head prev = Node(data=None, next_node=ll) while curr: # If not seen, add to set and continue iteration if curr.data not in output: output.add(curr.data) prev = curr curr = curr.next_node else: # Deletes by hopping over current node and continue iteration prev.next_node = curr.next_node curr.next_node = None curr = prev.next_node return ll
def test_node_link_node_next_node(self): n1 = Node(3) n2 = Node(5) n1.next_node = n2 self.assertEqual(n2, n1.next_node) self.assertEqual(5, n1.next_node.value)