def add(node1, node2, carry): if node1 == None and node2 == None and carry == 0: return None new_node = Node(0, None, None) sum = carry if node1 != None: sum += node1.value if node2 != None: sum += node2.value carry_next = sum // 10 new_node.value = sum % 10 if node1 is not None or node2 is not None or carry_next > 0: result = add(node1.next if node1 is not None else None, node2.next if node2 is not None else None, carry_next) new_node.next = result return new_node
def delete_middle_node(s_list: LinkedList, node: Node): node.value = node.next.value node.next = node.next.next
def test_after_single_node(self): node = Node(1) node = node.insert(2, 1) self.assertEqual(node.value(), 1) self.assertEqual(node.next().value(), 2)
def test_property(self): n = Node() n.value = 1 self.assertEqual(n.value, 1, "Property test")
def test_before_single_node(self): node = Node(1) node = node.insert(2, 0) self.assertEqual(node.value(), 2) self.assertEqual(node.next().value(), 1)