前言:树的前、中、后续遍历都属于深度优先的范畴,是树遍历的一大类方式,还有一类是广度优先.
1. 理论部分
2. 代码部分
2.1 前序遍历
def preorderTraversal(root, result=[]):
if root == None:
return result
result.append(root.data) # 根
preorderTraversal(root.left, result) # 左子树
preorderTraversal(root.right, result) # 左子树
return result
2.2 中序遍历
def intermediateTraversal(root, result=[]):
if root == None:
return result
intermediateTraversal(root.left, result)
result.append(root.data)
intermediateTraversal(root.right, result)
return result
2.3 后序遍历
def postorderTraversal(root, result=[]):
if root == None:
return
postorderTraversal(root.left, result)
postorderTraversal(root.right, result)
result.append(root.data)
return result