刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

重建二叉树
给定一棵二叉树的前序遍历和中序遍历的结果,求其后序遍历。
时间限制:1000
内存限制:65536
输入
输入可能有多组,以EOF结束。 每组输入包含两个字符串,分别为树的前序遍历和中序遍历。每个字符串中只包含大写字母且互不重复。
输出
对于每组输入,用一行来输出它后序遍历结果。
样例输入

DBACEGF ABCDEFG
BCAD CBAD

样例输出

ACBFGED
CDAB

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

【喵呜刷题小喵解析】根据题目描述,需要根据二叉树的前序遍历和中序遍历来重建二叉树,并求出其后序遍历。首先,我们定义一个TreeNode类来表示二叉树的节点。每个节点包含一个值,以及左右子树。然后,我们定义buildTree函数来根据前序遍历和中序遍历重建二叉树。函数的基本思路是:首先找到前序遍历的第一个元素作为根节点,然后在中序遍历中找到该元素,从而确定左子树和右子树。然后递归地对左子树和右子树进行同样的操作。最后,我们定义postorderTraversal函数来求二叉树的后序遍历。函数的基本思路是使用一个栈来模拟后序遍历的非递归算法。首先将根节点入栈,然后不断弹出栈顶元素,并将其值加入结果列表中。如果弹出的节点有右子树,则将右子树入栈;如果弹出的节点有左子树,则将左子树入栈。最后将结果列表反转,即可得到后序遍历的结果。在主函数中,我们不断读入前序遍历和中序遍历,然后调用buildTree函数重建二叉树,并调用postorderTraversal函数求其后序遍历,最后输出结果。
创作类型:
原创

本文链接:重建二叉树 给定一棵二叉树的前序遍历和中序遍历的结果,求其后序遍历。 时间限制:1000 内存限制:

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share