File tree 3 files changed +72
-63
lines changed
3 files changed +72
-63
lines changed Original file line number Diff line number Diff line change
1
+ class Node (object ):
2
+ def __init__ (self , data = None ):
3
+ self .data = data
4
+ self .next = None
5
+
6
+ def __repr__ (self ):
7
+ return str (self .data )
8
+
9
+ class LinkedList (object ):
10
+ def __init__ (self , iterable = []):
11
+ self .head = None
12
+ self .size = 0
13
+ for item in iterable :
14
+ self .append (item )
15
+
16
+ def __repr__ (self ):
17
+ (current , nodes ) = self .head , []
18
+ while current :
19
+ nodes .append (str (current ))
20
+ current = current .next
21
+ return "->" .join (nodes )
22
+
23
+ def __len__ (self ):
24
+ return self .size
25
+
26
+ def __iter__ (self ):
27
+ current = self .head
28
+ while current :
29
+ yield current
30
+ current = current .next
31
+ raise StopIteration
32
+
33
+ def __contains__ (self , data ):
34
+ tmp = self .head
35
+ found = False
36
+ while tmp and not found :
37
+ if data == tmp .data :
38
+ found = True
39
+ else :
40
+ tmp = tmp .next
41
+ return found
42
+
43
+ def append (self , data ):
44
+ tmp = Node (data )
45
+ tmp .next = self .head
46
+ self .head = tmp
47
+ self .size += 1
48
+
49
+ def getHead (self ):
50
+ return self .head
51
+
52
+ def getTail (self ):
53
+ tmp = self .head
54
+ while tmp .next :
55
+ tmp = tmp .next
56
+ return tmp
57
+
58
+ def delete (self , data ):
59
+ tmp = self .head
60
+ prev = None
61
+ found = False
62
+ while tmp and not found :
63
+ if data == tmp .data :
64
+ found = True
65
+ else :
66
+ prev = tmp
67
+ tmp = tmp .next
68
+ if found :
69
+ if prev == None :
70
+ self .head = self .head .next
71
+ else :
72
+ prev .next = tmp .next
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments