-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLinkedList.py
More file actions
69 lines (59 loc) · 1.76 KB
/
Copy pathLinkedList.py
File metadata and controls
69 lines (59 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
class LinkedList:
def __init__(self):
self.front = ListNode(None, None)
self.__size = 0
def add(self, data):
if self.__size is 0:
self.front = ListNode(data, None)
self.__size += 1
return True
elif data is None:
raise ValueError
else:
temp = self.front
for i in range(0, self.__size - 1):
temp = temp.nxt
temp.nxt = ListNode(data, None)
self.__size += 1
return True
def remove(self, index):
temp = self.front
if index > self.__size or index < 0:
raise ValueError
elif index is 0:
self.front = self.front.nxt
self.__size -= 1
else:
for i in range(0, self.__size - 1):
temp = temp.nxt
temp.nxt = temp.nxt.next
self.__size -= 1
def get(self, index):
temp = self.front
if index > self.__size or index < 0:
raise ValueError
else:
for i in range(0, index):
temp = temp.nxt
return temp.data
def get_index_of(self, obj):
temp = self.front
count = 0
if temp.data == obj:
return count
else:
for i in range(0, self.__size):
if temp.data == obj:
return count
else:
temp = temp.nxt
count += 1
def size(self):
return self.__size
class ListNode:
def __init__(self, data, nxt):
self.data = data
if nxt is not None:
self.nxt = nxt
else:
self.nxt = None