def reorder(head):
    n = size(head)
    head2 = advance(head, n / 2)
    head2 = reverse(head2)
    curr = head
    while curr:
        nxt = curr.next
        curr.next = head2
        curr, head2 = head2, nxt
def is_palindrome(head):
    n = size(head)
    head2 = advance(head, n / 2)
    head2 = reverse(head2)
    return is_same(head, head2)
def test_trivial_true():
    head1 = LinkedListNode(0)
    head2 = LinkedListNode(0)
    assert is_same(reverse(head1), head2)
def test_trivial():
    assert reverse(None) is None
def test_nontrivial_false():
    head1 = LinkedListNode(0, LinkedListNode(1, LinkedListNode(2)))
    head2 = LinkedListNode(1, LinkedListNode(2))
    assert not is_same(reverse(head1), head2)
def test_trivial_false():
    head1 = LinkedListNode(0)
    head2 = LinkedListNode(1)
    assert not is_same(reverse(head1), head2)