微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从前序和中序遍历构造二叉树

如何解决从前序和中序遍历构造二叉树

我试图从二叉树的前序遍历和中序遍历中得到后序。 但我不知道我该怎么做以及我的代码的结构应该是什么。 任何帮助都可能有用。

例如:

输入:

预购: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 的右子节点。
  • 返回新节点

来源:http://simpletechtalks.com/construct-a-binary-tree-from-inorder-and-preorder-traversal/#:~:text=Let%E2%80%99s%20look%20into%20the%20algorithm%20to%20construct%20the,the%20selected%20element%20index%20%28inorder_index%29%20in%20Inorder%20list

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。