Beispiel #1
0
    if head1.elem < head2.elem:
        merge_head = head1
        merge_head.next = merge_sorted_llist(head1.next, head2)
    else:
        merge_head = head2
        merge_head.next = merge_sorted_llist(head1, head2.next)

    return merge_head


if __name__ == "__main__":
    head1 = ListNode(1)
    p = head1

    for i in range(2, 5):
        p.next = ListNode(2 * i - 1)
        p = p.next

    head1.printall()

    head2 = ListNode(2)
    q = head2

    for i in range(2, 5):
        q.next = ListNode(2 * i)
        q = q.next

    head2.printall()

    merge_head = merge_sorted_llist(head1, head2)
    merge_head.printall()
    """反转链表"""
    if head is None:
        return "No element"

    reversed_llist = None
    left_llist = head

    while left_llist is not None:
        q = left_llist
        left_llist = q.next
        q.next = reversed_llist
        reversed_llist = q

    return reversed_llist


if __name__ == "__main__":
    head = ListNode(1)

    p = head
    for i in range(2, 5):
        p.next = ListNode(i)
        p = p.next

    head.printall()

    # head = ListNode(1)
    # head = None
    q = reverse_llist(head)
    q.printall()