#/usr/bin/env python
# -*- coding:utf-8 -*-
class TreeNode(object):
def __init__(self,val,left=None,right=None):
self.val = val
self.left = left
self.right = right
class BinaryTree(object):
def __init__(self,root=None):
self.root = root
def preOrder(retList,node):
if node != None:
retList.append(node)
preOrder(retList,node.left)
preOrder(retList,node.right)
return retList
def inOrder(retList,node):
if node != None:
inOrder(retList,node.left)
retList.append(node)
inOrder(retList,node.right)
return retList
def postOrder(retList,node):
if node != None:
postOrder(retList,node.left)
postOrder(retList,node.right)
retList.append(node)
return retList
if __name__ == "__main__":
print("====二叉树线遍历开始====")
rootNode = TreeNode(11)
rootNode.left = TreeNode(9,left=TreeNode(6,left=TreeNode(3),right=TreeNode(8)),right=TreeNode(10)
rootNode.right = TreeNode(17,left=TreeNode(12),right=TreeNode(19))
bTree = BinaryTree(rootNode)
ret = preOrder([],bTree.root)
for i in ret:
print(i.val),
print("====先序遍历结束====")
ret = inOrder([],bTree.root)
for i in ret:
print(i.val),
print("====中序遍历结束====")
ret = postOrder([],bTree.root)
for i in ret:
print(i.val),
print("====后序遍历结束====")
保存为了更好的记忆
浙公网安备 33010602011771号