Skip to content

Commit 6cbf142

Browse files
skip and delete
1 parent d3ffb01 commit 6cbf142

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

skip_i_delete_j.py

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
class Node:
2+
def __init__(self,value):
3+
self.value = value
4+
self.next = None
5+
6+
class LinkedList:
7+
def __init__(self):
8+
self.head = None
9+
def create_linked_list(self, input_list):
10+
for data in input_list:
11+
if self.head is None:
12+
self.head = Node(data)
13+
else:
14+
node = self.head
15+
while node.next:
16+
node = node.next
17+
node.next = Node(data)
18+
def to_list(self):
19+
py_list = []
20+
node = self.head
21+
while node:
22+
py_list.append(node.value)
23+
node = node.next
24+
return py_list
25+
def appendNode(self, inputnode):
26+
if self.head is None:
27+
self.head = inputnode
28+
return
29+
node = self.head
30+
while node.next:
31+
node = node.next
32+
node.next = inputnode
33+
def remove(self, inputnode):
34+
if self.head is None:
35+
return
36+
node = self.head
37+
if node == inputnode:
38+
self.head = inputnode.next
39+
inputnode.next = None
40+
return
41+
while node.next != inputnode:
42+
node = node.next
43+
node.next = node.next.next
44+
inputnode.next = None
45+
46+
47+
linked_list = LinkedList()
48+
linked_list.create_linked_list([1,2,3,4,5,6,7,8,9,10,11,12])
49+
print(linked_list.to_list())
50+
51+
def skip_and_delete(llist, i, j):
52+
newll = LinkedList()
53+
node = llist.head
54+
while node:
55+
skip_count = 0
56+
delete_count = 0
57+
while skip_count != i :
58+
nextPtr = node.next
59+
if node:
60+
llist.remove(node)
61+
newll.appendNode(node)
62+
node = nextPtr
63+
skip_count += 1
64+
else:
65+
break
66+
while delete_count != j:
67+
if node:
68+
node = node.next
69+
delete_count += 1
70+
else:
71+
break
72+
return newll
73+
74+
newll = skip_and_delete(linked_list, 2, 3)
75+
print(newll.to_list())

0 commit comments

Comments
 (0)