-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathADT_ideas.py
60 lines (42 loc) · 1.2 KB
/
ADT_ideas.py
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
class Node(object):
def __init__(self, val=None, next=None):
self.val = val
self.next = next
def __repr__(self):
return f'Node with data={self.val}'
import random
def createRandomLinkedList(numberOfNodes=10):
head = None
for i in range(numberOfNodes):
randomValue = random.randint(0, 10)
newNode = Node(val=randomValue)
newNode.next = head
head = newNode
return head
def reverseLinkedList(head):
prevNode = None
curNode = head
while (curNode):
nextNode = curNode.next
curNode.next = prevNode
prevNode = curNode
curNode = nextNode
head = prevNode
return head
def printLinkedList(head):
curNode = head
traversal = []
while (curNode):
# print(curNode.val)
traversal.append(curNode.val)
print(repr(curNode))
curNode = curNode.next
return traversal
if __name__ == '__main__':
# print(Node(val=10, next=None).val)
# print(Node(val=10, next=None).next)
head = createRandomLinkedList(10)
print(printLinkedList(head))
print('reversing')
newHead = reverseLinkedList(head)
print(printLinkedList(newHead))