File tree 1 file changed +64
-0
lines changed
data_structures/linked_list
1 file changed +64
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Node :
2
+ def __init__ (self , data : int ) -> int :
3
+ self .data = data
4
+ self .next = None
5
+
6
+
7
+ class LinkedList :
8
+ def __init__ (self ):
9
+ self .head = None
10
+
11
+ def push (self , new_data :int ) -> int :
12
+ new_node = Node (new_data )
13
+ new_node .next = self .head
14
+ self .head = new_node
15
+ return self .head .data
16
+
17
+ def middle_element (self ) -> int :
18
+ '''
19
+ >>> link = LinkedList()
20
+ >>> link.middle_element()
21
+ No element found.
22
+ >>> link.push(5)
23
+ 5
24
+ >>> link.push(6)
25
+ 6
26
+ >>> link.push(8)
27
+ 8
28
+ >>> link.push(8)
29
+ 8
30
+ >>> link.push(10)
31
+ 10
32
+ >>> link.push(12)
33
+ 12
34
+ >>> link.push(17)
35
+ 17
36
+ >>> link.push(7)
37
+ 7
38
+ >>> link.push(3)
39
+ 3
40
+ >>> link.push(20)
41
+ 20
42
+ >>> link.push(-20)
43
+ -20
44
+ >>> link.middle_element()
45
+ 12
46
+ >>>
47
+ '''
48
+ slow_pointer = self .head
49
+ fast_pointer = self .head
50
+ if self .head :
51
+ while fast_pointer and fast_pointer .next :
52
+ fast_pointer = fast_pointer .next .next
53
+ slow_pointer = slow_pointer .next
54
+ return slow_pointer .data
55
+ else :
56
+ print ("No element found." )
57
+
58
+
59
+ if __name__ == "__main__" :
60
+ link = LinkedList ()
61
+ for i in range (int (input ().strip ())):
62
+ data = int (input ().strip ())
63
+ link .push (data )
64
+ print (link .middle_element ())
You can’t perform that action at this time.
0 commit comments