Friday, March 21, 2014

Reverse every k element in linked list

__author__ = 'nitin'

class Node:
  def __init__(self,val,nxt):
    self.val = val
    self.nxt = nxt

def prnt(n):
  nxt = n.nxt
  print n.val
  if(nxt is not None):
    prnt(nxt)

def k_reverse(n,k):
    current=n
    count=0
    last=None
    while(current is not None and count        nxt = current.nxt
        current.nxt = last
        last = current
        current = nxt
        count +=1
    if current is not None:
        n.nxt=k_reverse(current,k)
    return last

n0 = Node(9,None)
n1 = Node(8,n0)
n2 = Node(7,n1)
n3 = Node(6,n2)
n4 = Node(5,n3)
n5 = Node(4,n4)
n6 = Node(3,n5)
n7 = Node(2,n6)
n8 = Node(1,n7)


prnt(n8)
print "\n"
result = k_reverse(n8,4)
prnt(result)

No comments:

My Profile

My photo
can be reached at 09916017317