def move_head(node, delimiter, head_list=None, tail_list=None): if not node: return head_list.append_node_to_tail(tail_list.head) if node.value < delimiter: if not head_list: head_list = LinkedList(node.value) else: head_list = head_list.append_node_to_tail(node) else: if not tail_list: tail_list = LinkedList(node.value) else: tail_list = tail_list.append_node_to_tail(node) return move_head(node=node.next, delimiter=delimiter, head_list=head_list, tail_list=tail_list)
def multiple_linked_list(x, y, result=None, carry_over=0): if not x and not y: return result x_vlaue = x.value if x else 0 y_value = y.value if y else 0 tens, ones = divmod(x_vlaue + y_value + carry_over, 10) if not result: result = LinkedList(ones) else: result.append_node_to_tail(LinkedListNode(ones)) return multiple_linked_list(x.next if x else None, y.next if y else None, result=result, carry_over=tens)