#/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("====后序遍历结束====")        

  保存为了更好的记忆