常见的数据结构的二叉树遍历问题小结:
对于二叉树遍历问题,存在以下规律:
前序遍历: 节点按照 [ 根节点 | 左子树 | 右子树 ] 排序。
中序遍历: 节点按照 [ 左子树 | 根节点 | 右子树 ] 排序
据此,可得出以下推论:
前序遍历的首元素 为 树的根节点 node 的值。
在中序遍历中搜索根节点 node 的索引 ,可将 中序遍历 划分为 [ 左子树 | 根节点 | 右子树 ] 。
根据中序遍历中的左(右)子树的节点数量,可将 前序遍历 划分为 [ 根节点 | 左子树 | 右子树 ]
以Lintcode offer(二)第7题 为例
preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]
通过以上三步,可确定 三个节点 :1.树的根节点node、2.左子树根节点、3.右子树根节点。