File tree Expand file tree Collapse file tree 1 file changed +64
-0
lines changed Expand file tree Collapse file tree 1 file changed +64
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Reverse Linked List using Iterative and Recursion
2
+ class Node :
3
+ def __init__ (self , data , next = None ):
4
+ self .data = data
5
+ self .next = next
6
+
7
+ class LinkedList :
8
+ def __init__ (self ) -> None :
9
+ self .head = None
10
+
11
+ def addNode (self , data ):
12
+ node = Node (data )
13
+ if self .head is None :
14
+ self .head = node
15
+ else :
16
+ current = self .head
17
+ while current .next is not None :
18
+ current = current .next
19
+ current .next = node
20
+
21
+ def display (self ):
22
+ print ("Print items" )
23
+ current = self .head
24
+ while current :
25
+ print (current .data )
26
+ current = current .next
27
+
28
+ # Iterative Method
29
+ def reverseLinkedList (self ):
30
+ current = self .head
31
+ previous = None
32
+
33
+ while current :
34
+ next = current .next
35
+ current .next = previous
36
+ previous = current
37
+ current = next
38
+
39
+ self .head = previous
40
+
41
+ # Recursion Method
42
+ def reverseLinkedListRecursively (self , currentNode , prev ):
43
+ current = currentNode
44
+ next = current .next
45
+ current .next = prev
46
+ if (next is None ):
47
+ self .head = current
48
+ return
49
+
50
+ return self .reverseLinkedListRecursively (next , current )
51
+
52
+
53
+
54
+ obj = LinkedList ()
55
+ obj .addNode (1 )
56
+ obj .addNode (2 )
57
+ obj .addNode (3 )
58
+ obj .addNode (4 )
59
+ obj .addNode (5 )
60
+ obj .display ()
61
+ obj .reverseLinkedList ()
62
+ obj .display ()
63
+ obj .reverseLinkedListRecursively (obj .head , None )
64
+ obj .display ()
You can’t perform that action at this time.
0 commit comments