I have this code:
def recursionTravel(node, returnArr = []):
if node:
returnArr.append(node.data)
if node.left: returnArr.append(recursionTravel(node.left, returnArr))
if node.right: returnArr.append(recursionTravel(node.right, returnArr))
return node.data
# Pre-order traversal
def pre_order(node):
output = []
if node:
output.append(node.data)
if node.left: output.append(recursionTravel(node.left))
if node.right: output.append(recursionTravel(node.right))
return output
Binary tree consists of Node: [5, 10, 2, 'leaf']
Output should be the same: [5, 10, 2, 'leaf']
Issue: Last element is missing in the return. Return value: [5, 10, 2]
Simply change the last line of recusiveTravel.
def RecusiveTravel(node, returnArr[]):
if node:
returnArr.append(node.data)
if node.left: returnArr.append(recursionTravel(node.left, returnArr))
if node.right: returnArr.append(recursionTravel(node.right, returnArr))
return returnArr
No need for the preOrder function. Just call it from the recusive function. It should work.