Beispiel #1
0
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)
Beispiel #2
0
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)