如果一个二叉搜索树的前序遍历是 [P, A, R, S],如何确定 [R, S, A, P] 是中序遍历还是后序遍历? 如果是后序遍历,如何确定它是 (左子树,右子树,根节点) 还是 (右子树,左子树,根节点)?
如果先序遍历是[P, A, R, S],那么P必须是根节点。由于它是二叉搜索树,所以A必须是左子节点,而R和S必须在右子树中。这给你两棵可能的树: P P A R A S S R 第二棵树的反后序遍历将提供序列[R,S,A,P]。
O(n)
。 - libik[R,S,A,P]
匹配的顺序即为它所属的顺序。 - nice_dev