d = {
'value': 1,
'next': {
'value': 2,
'next': {
'value': 3,
'next': {
'value': 4,
'next': None,
},
},
},
}
def printSinglyLinkedList(node):
if node != None:
printSinglyLinkedList(node['next'])
print(node['value'])
printSinglyLinkedList(d)
def reverseSinglyLinkedList(head):
prevNode = None
currNode = head
while currNode != None:
nextNode = currNode['next']
currNode['next'] = prevNode
prevNode = currNode
currNode = nextNode
return prevNode
def recu(d):
l = []
if d.get('next') is not None:
l.append(d.get('value', None))
l.extend(recu(d['next']))
else:
l.append(d.get('value', None))
return l
def non_recu(d):
l = []
while True:
l.append(d.get('value', None))
d = d.get('next', None)
if d is None:
break
return l
recu(d)
[1, 2, 3, 4]
non_recu(d)
[1, 2, 3, 4]