def remove(head, val):
    before = LinkedListNode(0)
    before.next = head
    curr = before
    while curr.next:
        if curr.next.val == val:
            curr.next = curr.next.next
        else:
            curr = curr.next
    return before.next
Beispiel #2
0
def test_nontrivial():
    head = LinkedListNode(
        0, LinkedListNode(1, LinkedListNode(2, LinkedListNode(3))))
    expected = LinkedListNode(
        0, LinkedListNode(3, LinkedListNode(1, LinkedListNode(2))))
    reorder(head)
    assert is_same(head, expected)
Beispiel #3
0
def test_trivial():
    # 1-2
    #  /
    # 1

    head1 = LinkedListNode(1)
    node1 = LinkedListNode(2)
    head1.next = node1

    head2 = LinkedListNode(1)
    head2.next = node1

    intersection_node = get_intersection(head1, head2)
    assert intersection_node.val == 2
Beispiel #4
0
def test_trivial():
    head1 = LinkedListNode(0)
    insert_after(head1, 1)
    head2 = LinkedListNode(0, LinkedListNode(1))
    assert is_same(head1, head2)
Beispiel #5
0
def test_nontrivial():
    head1 = LinkedListNode(1, LinkedListNode(3))
    head2 = LinkedListNode(1, LinkedListNode(2, LinkedListNode(3)))
    insert_after(head1, 2)
    assert is_same(head1, head2)
def test_trivial():
    head = LinkedListNode(0)
    assert remove(head, 0) is None
Beispiel #7
0
def test_trivial_false():
    head = LinkedListNode('a', LinkedListNode('b'))
    assert not is_palindrome(head)
def test_nontrivial_false():
    head1 = LinkedListNode(0, LinkedListNode(1, LinkedListNode(2)))
    head2 = LinkedListNode(0, LinkedListNode(1))
    assert not is_same(head1, head2)
def test_nontrivial_true():
    head1 = LinkedListNode(0, LinkedListNode(1, LinkedListNode(2)))
    head2 = LinkedListNode(2, LinkedListNode(1, LinkedListNode(0)))
    assert is_same(reverse(head1), head2)
Beispiel #10
0
def test_trivial():
    head = LinkedListNode(0)
    return size(head) == 1
Beispiel #11
0
def test_trivial():
    head1 = LinkedListNode(0, LinkedListNode(1))
    delete_after(head1)
    head2 = LinkedListNode(0)
    assert is_same(head1, head2)
Beispiel #12
0
def test_nontrivial():
    # 1-2-3-4
    #    /
    # 1-2

    head1 = LinkedListNode(1)
    node1 = LinkedListNode(2)
    node2 = LinkedListNode(3)
    node3 = LinkedListNode(4)
    head1.next = node1
    node1.next = node2
    node2.next = node3

    head2 = LinkedListNode(1)
    node4 = LinkedListNode(2)
    head2.next = node4
    node4.next = node2

    intersection_node = get_intersection(head1, head2)
    assert intersection_node.val == 3
def test_nontrivial():
    head = LinkedListNode(0, LinkedListNode(1, LinkedListNode(2)))
    head2 = advance(head, 1)
    return head2.val == 1
def test_trivial():
    head = LinkedListNode(0)
    head2 = advance(head, 0)
    return head2.val == 0
Beispiel #15
0
def test_trivial():
    head = LinkedListNode(0)
    reorder(head)
    expected = LinkedListNode(0)
    assert is_same(head, expected)
Beispiel #16
0
def test_nontrivial():
    head = LinkedListNode(0, LinkedListNode(1, LinkedListNode(2)))
    return size(head) == 3
Beispiel #17
0
def insert_after(before_node, val):
    node = LinkedListNode(val)
    node.next = before_node.next
    before_node.next = node
def test_trivial_false():
    head1 = LinkedListNode(0)
    head2 = LinkedListNode(1)
    assert not is_same(head1, head2)
def test_nontrivial():
    # 2 -> 0 -> 2 -> 2 -> 1 -> 2 => 0 -> 1

    head1 = LinkedListNode(2)
    node1 = LinkedListNode(0)
    node2 = LinkedListNode(2)
    node3 = LinkedListNode(2)
    node4 = LinkedListNode(1)
    node5 = LinkedListNode(2)
    head1.next = node1
    node1.next = node2
    node2.next = node3
    node3.next = node4
    node4.next = node5

    head2 = LinkedListNode(0)
    node6 = LinkedListNode(1)
    head2.next = node6

    assert is_same(remove(head1, 2), head2)
def test_trivial_true():
    head1 = LinkedListNode(0)
    head2 = LinkedListNode(0)
    assert is_same(head1, head2)
Beispiel #21
0
def test_trivial_true():
    head = LinkedListNode('a')
    assert is_palindrome(head)