Esempio n. 1
0
            tail_node.next = next_node
            head = next_node
            i = 0
        node = next_node
        i = i + 1
    return dummy.next


def reverse(node, k):
    tmp = node
    previous = None
    while tmp:
        tmp.next, previous, tmp = previous, tmp, tmp.next
        k = k - 1
        if k == 0:
            return previous, node


l = SingleLinkedList()
l.add_list_item(2)
l.add_list_item(1)

l.printall()

r = reverseKGroup(l.root, 2)
tmp = ""
while r is not None:
    tmp = tmp + str(r.data) + '->'
    r = r.next
print(tmp[:-2])
Esempio n. 2
0
            if i == n:
                if last_previous:
                    last_previous.next = node
                first.next = tmp
            node.next = previous
            previous = node
            node = tmp
        else:
            if i == m - 1:
                last_previous = node
            node = tmp
        i = i + 1
    if m == 1:
        return previous
    return head


l = SingleLinkedList()
l.add_list_item(5)
l.add_list_item(4)

l.printall()

x = reverseBetween(l.root, 1, 1)

tmp = ""
while x is not None:
    tmp = tmp + str(x.data) + '->'
    x = x.next
print(tmp[:-2])