''' 解题思路: 思路: 先序:根左右,先存当前根节点,然后遍历左子树,最后遍历右子树 中序:左根右,先遍历左子树,再保存根节点,最后遍历右子树 后序:左右根,先遍历左子树,再遍历右子树,最后保存根节点 ''' class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None # @param root TreeNode类 the root of binary tree # @return int整型二维数组 # pre = [] def dfs_pre(root): if not root: return pre.append(root.val) dfs_pre(root.left) dfs_pre(root.right) mid = [] def dfs_mid(root): if not root: return dfs_mid(root.left) mid.append(root.val) dfs_mid(root.right) post = [] def dfs_post(root): if not root: return dfs_post(root.left) dfs_post(root.right) post.append(root.val) class Solution: def threeOrders(self , root ): # write code here dfs_pre(root) dfs_mid(root) dfs_post(root) return [pre,mid,post]