Exemplo n.º 1
0
Merge sort of a linked list
"""

from linked_list import Node

node = Node()
node.insert_at_beginning(5)
node.insert_at_beginning(2)
node.insert_at_beginning(1)
node.insert_at_beginning(10)
node.insert_at_beginning(-1)
node.insert_at_beginning(30)
node.insert_at_beginning(12)
node.insert_at_beginning(6)

node.print_list()
    
def get_middle(head):
    slowptr = head
    fastptr = head

    while fastptr and fastptr.next:
        slowptr = slowptr.next
        fastptr = fastptr.next.next
    
    return slowptr

def sorted_merge(left, right):
    if not left:
        return right
    
Exemplo n.º 2
0
                node = Node(current_node.data)
                aux_list.next = node
                aux_list = aux_list.next
            flag.next = current_node.next
        else:
            flag = current_node
        current_node = current_node.next

    flag.next = aux_list2
    return link_list


node1 = Node(3)
node2 = Node(5)
node1.next = node2
node3 = Node(8)
node2.next = node3
node4 = Node(5)
node3.next = node4
node5 = Node(10)
node4.next = node5
node6 = Node(2)
node5.next = node6
node7 = Node(1)
node6.next = node7

node1.print_list()
print 'partition'
node1 = partition(node1, 5)
node1.print_list()