Skip to content

Commit 426ce1e

Browse files
committed
reverse linked list.py
1 parent d4772be commit 426ce1e

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

reverse linked list.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
class Node:
2+
def __init__(self, data):
3+
self.data = data
4+
self.next = None
5+
6+
7+
class LinkedList:
8+
def __init__(self):
9+
self.head = None
10+
11+
def printList(self):
12+
temp = self.head
13+
while temp:
14+
print(temp.data)
15+
temp = temp.next
16+
17+
# 10 -> 20 -> 30 -> 40
18+
# 40 -> 30 -> 20 -> 10
19+
# 10 <- 20 <- 30 <- 40
20+
def reverse_iterative(self):
21+
prev = None
22+
curr = self.head
23+
while curr:
24+
nxt = curr.next
25+
curr.next = prev
26+
prev = curr
27+
curr = nxt
28+
self.head = prev
29+
30+
31+
l1 = LinkedList()
32+
l1.head = Node(10)
33+
l2 = Node(20)
34+
l3 = Node(30)
35+
l4 = Node(40)
36+
l1.head.next = l2
37+
l2.next = l3
38+
l3.next = l4
39+
print("before reversing the nodes")
40+
l1.printList()
41+
l1.reverse_iterative()
42+
print("after reversing the nodes")
43+
l1.printList()

0 commit comments

Comments
 (0)