如何解决从前序和中序遍历构造二叉树
我试图从二叉树的前序遍历和中序遍历中得到后序。 但我不知道我该怎么做以及我的代码的结构应该是什么。 任何帮助都可能有用。
例如:
输入:
预购:6 2 1 4 3 5 7 9 8
顺序:1 2 3 4 5 6 7 8 9
输出:
后序:1 3 5 4 2 8 9 7 6
解决方法
- 从预排序列表中选择第一个元素并增加预排序索引。
- 创建一个二叉树节点 (new_node) 并将值设置为选定的预排序列表值。
- 在中序列表中查找所选元素索引(inorder_index)。
- 再次调用递归函数,将 inorder_index 项在 inorder 列表的左侧设置为 new_node 的左子节点。
- 再次调用递归函数,将 inorder_index 项右侧的 inorder 列表设置为 new_node 的右子节点。
- 返回新节点
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。