用到了递归,自调用的思想
###先序遍历
def preorder(tree):
if tree:
print(tree.getRootVal())
preorder(tree.getLeftChild())
preorder(tree.getRightChild())
###后序遍历
def postorder(tree):
if tree:
postorder(tree.getLeftChild())
postorder(tree.getRightChild())
print(tree.getRootVal())
###中序遍历
def inorder(tree):
if tree:
inorder(tree.getLeftChild())
print(tree.getRootVal())
inorder(tree.getRightChild())
##层序遍历
def levelorder(tree):
from collections import deque
q = deque()
q.append(tree)
while q:
# deque是一个先进先出的队列
node = q.popleft()
print(node.getRootVal())
if node.getLeftChild():
q.append(node.getLeftChild())
if node.getRightChild():
q.append(node.getRightChild())
return