Ejemplo n.º 1
0
def reorder_list(orig_list):
    dummy = ListNode(0)
    dummy.next = orig_list.head
    p = q = dummy
    # find the break point
    while p and p.next:
        p = p.next.next
        q = q.next

    # break the list
    r = q.next
    q.next = None
    second_half = LinkList()
    second_half.head = r

    # reverse the second half
    second_half.reverse_list()

    # merge
    p = orig_list.head
    r = second_half.head
    while r:
        p_next = p.next
        r_next = r.next
        r.next = p.next
        p.next = r
        r = r_next
        p = p_next
    del second_half
    return orig_list
Ejemplo n.º 2
0
def reorder_list(orig_list):
    dummy = ListNode(0)
    dummy.next = orig_list.head
    p = q = dummy
    # find the break point
    while p and p.next:
        p = p.next.next
        q = q.next
    
    # break the list
    r = q.next
    q.next = None
    second_half = LinkList()
    second_half.head = r
    
    # reverse the second half
    second_half.reverse_list()
    
    # merge
    p = orig_list.head
    r = second_half.head
    while r:
        p_next = p.next
        r_next = r.next
        r.next = p.next
        p.next = r
        r = r_next
        p = p_next
    del second_half
    return orig_list
def merge_two_lists_2(list_1, list_2):
    result = LinkList()
    result.head = merge_two_lists_helper(list_1.head, list_2.head)
    return result
Ejemplo n.º 4
0
def merge_sort_list(orig_list):
    nh = merge_sort_list_helper(orig_list.head)
    result_list = LinkList()
    result_list.head = nh
    return result_list
Ejemplo n.º 5
0
def merge_sort_list(orig_list):
    nh = merge_sort_list_helper(orig_list.head)
    result_list = LinkList()
    result_list.head = nh
    return result_list
Ejemplo n.º 6
0
def merge_two_lists_2(list_1, list_2):
    result = LinkList()
    result.head = merge_two_lists_helper(list_1.head, list_2.head)
    return result