标签:个数 style 数据结构 第一个 方式 const 部分 结构 前序遍历
树除了根节点之外每个结点只有一个父节点,根节点没有父节点,除了叶结点之外所有结点都有一个或多个子节点,叶节点没有子节点,父节点和子结点之间用指针连接。
一般大部分都是二叉树,即每个结点最多只能有两个子结点。遍历方式有三种:前序(根-左-右)、中序(左-根-右)、后序9左-右-根);
struct BinaryTreeNode { int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight; };
1 重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历都不含有重复的数字。
解题思路:
(1)根据preorder的第一个数字,遍历inorder找到该数字,即确定了根结点的位置;
(2)inorder中根结点左边为左子树,右边为右子树,再结合preorder就找到左子树和右子树对应的前序序列和中序序列;
(3)用同样的方法分别去构建左子树和右子树,即用递归完成;
2 未完待续~
标签:个数 style 数据结构 第一个 方式 const 部分 结构 前序遍历
原文地址:https://www.cnblogs.com/bo1990/p/11442056.html