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
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)
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
def test_trivial(): head1 = LinkedListNode(0) insert_after(head1, 1) head2 = LinkedListNode(0, LinkedListNode(1)) assert is_same(head1, head2)
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
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)
def test_trivial(): head = LinkedListNode(0) return size(head) == 1
def test_trivial(): head1 = LinkedListNode(0, LinkedListNode(1)) delete_after(head1) head2 = LinkedListNode(0) assert is_same(head1, head2)
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
def test_trivial(): head = LinkedListNode(0) reorder(head) expected = LinkedListNode(0) assert is_same(head, expected)
def test_nontrivial(): head = LinkedListNode(0, LinkedListNode(1, LinkedListNode(2))) return size(head) == 3
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)
def test_trivial_true(): head = LinkedListNode('a') assert is_palindrome(head)