一棵二叉树的前序遍历序列为 1234567,它的中序遍历序列可能是( )。
A. 3124567 B. 1234567 C. 4135627 D. 2153647
[tag_link]
正确答案:B
前序遍历序列为 1234567,因此根节点是 1。
中序遍历的顺序是左子树、根、右子树。 对于根节点 1,在中序遍历中,所有在 1 左侧的节点构成左子树,在 1 右侧的节点构成右子树。 同时,前序遍历中根 1 之后应首先遍历左子树(如果存在),然后遍历右子树。
选项 A 的中序为 3124567,即序列 3,1,2,4,5,6,7。 此时根 1 左侧有节点 3,说明左子树非空。 但前序序列中根 1 之后是 2,而不是左子树的节点 3,这导致矛盾,因此不可能。
选项 C 的中序为 4135627,即序列 4,1,3,5,6,2,7。 根 1 左侧有节点 4,左子树非空。 但前序序列中根 1 之后是 2,而不是左子树的节点 4,同样矛盾,因此不可能。
选项 D 的中序为 2153647,即序列 2,1,5,3,6,4,7。 根 1 左侧有节点 2,左子树非空。 前序序列中根 1 之后是 2,这符合左子树根为 2 的情况。 然而,右子树的中序为 5,3,6,4,7,其根应为前序中 2 之后的 3。 但根据右子树的结构,根 3 应有左子树节点 5,因此在前序中 3 之后应先出现 5,而实际前序序列中 3 之后是 4,导致矛盾,因此不可能。
选项 B 的中序为 1234567,即序列 1,2,3,4,5,6,7。 此时根 1 左侧无节点,左子树为空,所有节点都在右子树。 右子树的结构类似:根 2 左子树为空,右子树根 3,依此类推,形成每个节点只有右孩子的向右倾斜二叉树。 这种情况下,前序遍历和中序遍历序列均为 1234567,完全匹配,因此是可能的。
综上,只有选项 B 的中序遍历序列可能对应前序遍历序列为 1234567 的二叉树。