【问题标题】:Constructing Binary Tree from Preorder and Inorder Traversal从前序和中序遍历构造二叉树
【发布时间】:2021-09-03 03:31:18
【问题描述】:

我正在尝试从二叉树的前序和中序遍历中生成二叉树的后序。 但我不知道我该怎么做以及我的代码结构应该是什么。 任何帮助都会很有用。

例如:

输入:

预购: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

【问题讨论】:

  • 嗨@abolfazl,欢迎来到stackoverflow。听起来您应该首先了解算法:您将如何用笔和纸来做到这一点?学习你的教科书或其他任何东西,直到你能做到为止。然后,您可以开始将您的步骤转换为 Python,如果您对特定步骤感到困惑,您可以回到这里。

标签: python data-structures binary-tree tree-traversal


【解决方案1】:
  • 从预购列表中选择第一个元素并增加预购索引。
  • 创建二叉树节点 (new_node) 并将值设置为选定的预购列表值。
  • 在有序列表中查找选定元素索引(inorder_index)。
  • 再次调用递归函数,将 inorder 列表中 inorder_index 项的左侧设置为 new_node 的左子节点。
  • 再次调用中序列表中inorder_index项右侧的递归函数,并设置为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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    相关资源
    最近更新 更多