#/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("====后序遍历结束====")
保存为了更好的记忆