inorder,preorder,postorder 순서를 아느냐 물어보는 문제 같다.
def inOrderTraverse(tree, array):
# Write your code here.
if tree == None:
return
if tree != None:
inOrderTraverse(tree.left, array)
array.append(tree.value) #1, 2, 5, 5, 10, 15, 22,
inOrderTraverse(tree.right, array)
return array
def preOrderTraverse(tree, array):
# Write your code here.
if tree == None:
return
if tree != None:
array.append(tree.value) #10, 5, 2, 1 ,5, 15, 22
preOrderTraverse(tree.left, array)
preOrderTraverse(tree.right, array)
return array
def postOrderTraverse(tree, array):
# Write your code here.
if tree == None:
return
if tree != None:
postOrderTraverse(tree.left, array)
postOrderTraverse(tree.right, array)
array.append(tree.value)
return array
먼저 리컬시브는 멈춰야하는 구간이 있어야 무한으로 작동하지 않는데, tree == None 일때 리턴해주고 아니경우에는 순서에따라 (인오더인경우: 왼쪽 -> 어레이 출력 -> 오른쪽) 각각의 함수를 불러주면 된다.