#/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("====Binary tree line traversal start====") 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("====End of preorder traversal====") ret = inOrder ([], bTree.root) for i in ret: print(i.val), print("====End of inorder traversal====") ret = postOrder ([], bTree.root) for i in ret: print(i.val), print("====End of postorder traversal====")
Save for better memory