Skip to content

Commit 0d080c7

Browse files
Reversing linked list using iterative method
1 parent 18e2e62 commit 0d080c7

File tree

5 files changed

+114
-452
lines changed

5 files changed

+114
-452
lines changed

HackerRank/Data Structure/Linked Lists/Linked-Lists.ipynb

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,105 @@
331331
"source": [
332332
"# Reverse a linked list"
333333
]
334+
},
335+
{
336+
"cell_type": "code",
337+
"execution_count": null,
338+
"metadata": {},
339+
"outputs": [],
340+
"source": [
341+
"n=b"
342+
]
343+
},
344+
{
345+
"cell_type": "code",
346+
"execution_count": 35,
347+
"metadata": {},
348+
"outputs": [
349+
{
350+
"name": "stdin",
351+
"output_type": "stream",
352+
"text": [
353+
" 4\n",
354+
" 12\n",
355+
" 434\n",
356+
" 66\n",
357+
" 22\n"
358+
]
359+
},
360+
{
361+
"name": "stdout",
362+
"output_type": "stream",
363+
"text": [
364+
"Linked Lists\n",
365+
"12\n",
366+
"434\n",
367+
"66\n",
368+
"22\n",
369+
"Linked Lists After Reversing\n",
370+
"22\n",
371+
"66\n",
372+
"434\n",
373+
"12\n"
374+
]
375+
}
376+
],
377+
"source": [
378+
"# %load Reverse-linked-list.py\n",
379+
"class node:\n",
380+
" def __init__(self,data):\n",
381+
" self.data=data\n",
382+
" self.next=None\n",
383+
"class LinkedList:\n",
384+
" def __init__(self):\n",
385+
" self.start=None\n",
386+
" def display(self):\n",
387+
" if self.start==None:\n",
388+
" print('list is empty')\n",
389+
" else:\n",
390+
" temp=self.start\n",
391+
" while temp:\n",
392+
" print(temp.data)\n",
393+
" temp=temp.next\n",
394+
" def reversing_linked_list(self):\n",
395+
" current=self.start\n",
396+
" previous=None\n",
397+
" while current:\n",
398+
" temp=current.next\n",
399+
" current.next=previous\n",
400+
" previous=current\n",
401+
" current=temp\n",
402+
" self.start=previous\n",
403+
" \n",
404+
"l=LinkedList()\n",
405+
"for _ in range(int(input())):\n",
406+
" n=int(input())\n",
407+
" if l .start==None:\n",
408+
" l.start=node(n)\n",
409+
" ptr=l.start\n",
410+
" else:\n",
411+
" ptr.next=node(n)\n",
412+
" ptr=ptr.next\n",
413+
"print('Linked Lists')\n",
414+
"l.display()\n",
415+
"print('Linked Lists After Reversing')\n",
416+
"l.reversing_linked_list()\n",
417+
"l.display()"
418+
]
419+
},
420+
{
421+
"cell_type": "markdown",
422+
"metadata": {},
423+
"source": [
424+
"# Compare two linked lists"
425+
]
426+
},
427+
{
428+
"cell_type": "code",
429+
"execution_count": null,
430+
"metadata": {},
431+
"outputs": [],
432+
"source": []
334433
}
335434
],
336435
"metadata": {

HackerRank/Linked Lists/print-in-reverse.py renamed to HackerRank/Data Structure/Linked Lists/Reverse-linked-list.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,16 @@ def display(self):
1313
while temp:
1414
print(temp.data)
1515
temp=temp.next
16-
def display_reverse(self,head):
17-
if head:
18-
self.display_reverse(head.next)
19-
print(head.data)
20-
def InsertAtHead(self,n):
21-
if self.start is None:
22-
self.start=node(n)
23-
else:
24-
temp=self.start
25-
self.start=node(n)
26-
self.start.next=temp
16+
def reversing_linked_list(self):
17+
current=self.start
18+
previous=None
19+
while current:
20+
temp=current.next
21+
current.next=previous
22+
previous=current
23+
current=temp
24+
self.start=previous
25+
2726
l=LinkedList()
2827
for _ in range(int(input())):
2928
n=int(input())
@@ -33,4 +32,8 @@ def InsertAtHead(self,n):
3332
else:
3433
ptr.next=node(n)
3534
ptr=ptr.next
36-
l.display_reverse(l.start)
35+
print('Linked Lists')
36+
l.display()
37+
print('Linked Lists After Reversing')
38+
l.reversing_linked_list()
39+
l.display()

0 commit comments

Comments
 (0)