From c5106925282a29cc91dad35787a941eb19bf4c05 Mon Sep 17 00:00:00 2001 From: Tanay Chauli <30913633+tanaychaulinsec@users.noreply.github.com> Date: Sat, 31 Oct 2020 23:21:13 +0530 Subject: [PATCH] reverse linked list given a group --- Linked Lists/RevaLinkListGivenAgROUP.py | 67 +++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Linked Lists/RevaLinkListGivenAgROUP.py diff --git a/Linked Lists/RevaLinkListGivenAgROUP.py b/Linked Lists/RevaLinkListGivenAgROUP.py new file mode 100644 index 0000000..438375e --- /dev/null +++ b/Linked Lists/RevaLinkListGivenAgROUP.py @@ -0,0 +1,67 @@ +class Node: + def __init__(self,data): + self.data=data + self.next=None +class Linkedlist: + def __init__(self): + self.head=None + def insert(self,newNode): + if self.head is None: + self.head=newNode + else: + lastNode=self.head + while True: + if lastNode.next is None: + break + else: + lastNode=lastNode.next + lastNode.next=newNode + def printlist(self): + currentNode=self.head + while True: + if currentNode is None: + break + else: + print(currentNode.data) + currentNode=currentNode.next + + def reverse(self, head, k): + current = head + next = None + prev = None + count = 0 + # Reverse first k nodes of the linked list + while (current is not None and count < k): + next = current.next + current.next = prev + prev = current + current = next + count += 1 + if next is not None: + head.next = self.reverse(next, k) + + # prev is new head of the input list + return prev +if __name__=='__main__' : + llist1=Linkedlist() + firstNode=Node(input("Enter 1st Node Data")) + llist1.insert(firstNode) + secondNode = Node(input("Enter 2nd Node Data")) + llist1.insert(secondNode) + thirdNode = Node(input("Enter 3rd Node Data")) + llist1.insert(thirdNode) + fouthNode = Node(input("Enter 4th Node Data")) + llist1.insert(fouthNode) + fifthNode = Node(input("Enter 5th Node Data")) + llist1.insert(fifthNode) + sixthNode = Node(input("Enter 6th Node Data")) + llist1.insert(sixthNode) + seventhNode = Node(input("Enter 7th Node Data")) + llist1.insert(seventhNode) + k=int(input("Enter value of Key")) + print("given Linked list",llist1.printlist()) + llist1.head=llist1.reverse(llist1.head,k) + print("rev Linked list",llist1.printlist()) + + +