Esempio n. 1
0
def test_even_num_elements_list():
    ll = Node(13)
    ll.next = Node(15)
    ll.next.next = Node(17)
    ll.next.next.next = Node(19)
    ll.next.next.next.next = Node(21)
    ll.next.next.next.next.next = Node(23)
    assert get_middle_of_ll(ll) == 19
Esempio n. 2
0
def test_delete_middle_ll_even_nodes():
    ll = Node(15)
    ll.next = Node(17)
    ll.next.next = Node(19)
    ll.next.next.next = Node(21)
    ll.next.next.next.next = Node(23)
    ll.next.next.next.next.next = Node(25)
    assert str(delete_middle_ll(ll)) == "15->17->19->23->25"
Esempio n. 3
0
def test_delete_middle_ll_odd_nodes():
    ll = Node(15)
    ll.next = Node(17)
    ll.next.next = Node(19)
    ll.next.next.next = Node(21)
    ll.next.next.next.next = Node(23)
    assert str(delete_middle_ll(ll)) == "15->17->21->23"
def flatten_linked_list(ll):
    if not ll:
        return None

    current = ll
    flatten_list = None
    prev_node = None
    while current:
        current_vertical = current
        while current_vertical:
            new_node = Node(current_vertical.val)
            if not flatten_list:
                flatten_list = new_node
            else:
                prev_node.next = new_node
            prev_node = new_node
            current_vertical = current_vertical.next

        if hasattr(current, "right"):
            current = current.right
        else:
            current = None
    return flatten_list
def test_flatten():
    a = Node(5)
    a.next = Node(7)
    a.next.next = Node(8)
    a.next.next.next = Node(30)

    b = Node(10)
    b.next = Node(20)

    c = Node(19)
    c.next = Node(22)
    c.next.next = Node(50)

    d = Node(28)
    d.next = Node(35)
    d.next.next = Node(40)
    d.next.next.next = Node(45)

    main_list = a
    main_list.right = b
    main_list.right.right = c
    main_list.right.right.right = d

    ll = flatten_linked_list(main_list)
    assert str(ll) == "5->7->8->30->10->20->19->22->50->28->35->40->45"
Esempio n. 6
0
def test_delete_middle_ll_two_nodes():
    ll = Node(15)
    ll.next = Node(17)
    assert str(delete_middle_ll(ll)) == "15"
Esempio n. 7
0
def test_delete_middle_ll_single_node():
    ll = Node(15)
    assert delete_middle_ll(ll) is None
Esempio n. 8
0
def test_two_element_list():
    ll = Node(13)
    ll.next = Node(15)
    assert get_middle_of_ll(ll) == 15
Esempio n. 9
0
def test_single_element_list():
    ll = Node(13)
    assert get_middle_of_ll(ll) == 13