def partition(head, x):
    beforeStart = ll.Node()
    beforeEnd = ll.Node()
    afterStart = ll.Node()
    afterEnd = ll.Node()

    while (head):
        next = head.next
        head.next = ll.Node()

        if head.next < x:
            #Insert node into end of beforeList
            if beforeStart.val == None:
                beforeStart = head
                beforeEnd = beforeStart
            else:
                beforeEnd.next = head
                beforeEnd = head
        else:
            #Insert node into end of afterList
            if afterStart.val == None:
                afterStart = head
                afterEnd = afterStart
            else:
                afterEnd.next = head
                afterEnd = head

        head = next

    if beforeStart.val == None:
        return afterStart

    beforeEnd.next = afterStart
    return beforeStart
Ejemplo n.º 2
0
def test_deleteMiddleNode2():
    list = ll.Node(1)
    list.next = ll.Node(2)
    list.next.next = ll.Node(3)

    rlist = deleteMiddleNode.deleteMiddleNode(list)
    assert rlist.val == 1
    assert rlist.next.val == 3
def removeDups(head):
    valdict = []
    prev = ll.Node()
    i = 0
    while (head):
        if head.val in valdict:
            prev.next = head.next
        else:
            valdict.append(head.val)
            prev = head
        head = head.next
        i += 1
    return head
Ejemplo n.º 4
0
def test_partition1():
    '''
    Example: 3-> 5 -> 8 -> 5 -> 10 -> 2 -> 1 [partition = 5]
    Output: 3 -> 1 -> 2 -> 10 -> 5 -> 5 -> 8
    '''

    list = ll.Node(3)
    list.next = ll.Node(5)
    list.next.next = ll.Node(8)
    list.next.next.next = ll.Node(5)
    list.next.next.next.next = ll.Node(10)
    list.next.next.next.next.next = ll.Node(2)
    list.next.next.next.next.next.next = ll.Node(1)

    newList = partition.partition(list, 5)
    assert newList.next.val == 3
Ejemplo n.º 5
0
def test_deleteMiddleNode1():
    list = ll.Node(1)
    list.next = ll.Node(2)
    assert deleteMiddleNode.deleteMiddleNode(list) == None
Ejemplo n.º 6
0
# Reverse Linked List
## Mitchell Ciupak
## 20210303

import linkedLists as ll


def reverse_linkedlist(head):

    nxt = head.next
    curr = head
    last = None

    while curr is not None:
        nxt = curr.next  #store

        curr.next = last  #swap

        last = curr  #update
        curr = nxt  #incrament

    head = last
    return head


head = ll.Node(1)
head.next = ll.Node(2)
head.next.next = ll.Node(3)
head = reverse_linkedlist(head)
ll.printLL(head=head)