当前位置: 首页 > news >正文

网站建设导航滁州注册公司流程和费用

网站建设导航,滁州注册公司流程和费用,做视频最全的网站,企业网站功能清单剑指offerWeek1 周五#xff1a;重建二叉树 题目链接#xff1a;重建二叉树 输入一棵二叉树前序遍历和中序遍历的结果#xff0c;请重建该二叉树。注意:二叉树中每个节点的值都互不相同#xff1b; 输入的前序遍历和中序遍历一定合法#xff1b; 数据范围 树中节点数量…剑指offerWeek1 周五重建二叉树 题目链接重建二叉树 输入一棵二叉树前序遍历和中序遍历的结果请重建该二叉树。注意:二叉树中每个节点的值都互不相同 输入的前序遍历和中序遍历一定合法 数据范围 树中节点数量范围 [0,100] 。样例 给定 前序遍历是[3, 9, 20, 15, 7] 中序遍历是[9, 3, 15, 20, 7]返回[3, 9, 20, null, null, 15, 7, null, null, null, null] 返回的二叉树如下所示3/ \9 20/ \15 7AC代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:unordered_mapint, int map;TreeNode* buildTree(vectorint preorder, vectorint inorder) {for (int i 0; i inorder.size(); i ) map[inorder[i]] i;return dfs(preorder, inorder, 0, preorder.size() - 1, 0, inorder.size() - 1);}TreeNode* dfs(vectorint preorder, vectorint inorder, int pl, int pr, int il, int ir){if (pl pr) return nullptr;auto node new TreeNode(preorder[pl]);int k map[node-val];node-left dfs(preorder, inorder, pl 1, pl k - il, il, k - 1);node-right dfs(preorder, inorder, pl k - il 1, pr, k 1, ir);return node;} };思路 整体思路 要时刻牢记前序遍历、中序遍历的特点 前序第一个遍历的一定是根节点 中序遍历在根节点的左边一定是左子树右边则是右子树那么两个性质结合可以从前序遍历中找到根节点 然后再从中序遍历中根据根节点划分左右子树 在左右子树中递归以上步骤则可以重建二叉树本题还有一个难点 当知道根节点以后如何划分左右子树 别说什么哎呀中序遍历知道根节点左边的不就是左子树吗 注意我这里指的是在前序遍历的数集中划分左右子树 这里是利用左右子树区间长度相等得出区间边界代码思路 利用map构造出中序遍历的值能索引到值对应的下标为了更好的找到根节点递归递归的条件是前序遍历集存在 构造根节点找到根节点的下标值在左子树中递归 前序遍历区间第一个节点是pl也是根节点因此左子树从pl 1开始左子树的右端点待定中序遍历的区间左端点为il右端点为根节点的索引值 - 1 在右子树中递归 右子树 前序遍历区间左端点待定右端点显然是pr中序遍历的区间左端点为根节点的索引值 1右端点ir 返回根节点 以上有两个待定的端点也是难点 这里需要利用性质左右子树区间长度相等得出区间边界 记根节点下标为k 由于中序遍历中左子树区间为[il, k - 1] 前序遍历[pl 1, 待定] 记前序遍历区间的右端点为x 则有 x - pl - 1 1 k - 1 - il 1 则可以解出x k - il pl 则前序遍历中右子树的左端点显然为这个x 1 部分模拟 前序遍历是[3, 9, 20, 15, 7] 中序遍历是[9, 3, 15, 20, 7] 前序遍历第一个节点为根节点显然为3从中序遍历中得到3因此9是左子树15, 20, 7是右子树左子树已经确定 右子树中继续递归即可例如右子树的根为20前序遍历中得出
http://www.hkea.cn/news/14575356/

相关文章:

  • 最简单的单页网站怎么做asp网站水印支除
  • 申请网站空间怎么做灵台门户网
  • 网站建设续费的回访话术做试管婴儿的网站
  • 网站的设计风格与特点郑州高端定制建设网站
  • 临沂中文网站建设网站添加外链
  • 北海市住房和城乡建设局网站网站开发需要什么资料
  • 网站开发费怎么做账做网站用平板吗
  • 网站建设APP的软件苏州学校网站建设
  • 潍坊网络推广网站建设wordpress换不了密码错误
  • 服装网站公司网站北京网站优化托管
  • 静态网站生成一团网站建设
  • 网站运营成本预算中铁建设集团有限公司梅洪亮
  • 做流量网站吗1000个关键词
  • 阜阳网站建设哪家好市场营销专业课程
  • 英文购物网站模板下载怎么看网站是dede模板
  • 把网站做到wordpress里面去网页模板免费下载完整版
  • 网站建设公司宣传册地域文化创意产网站建设规则
  • 建立一个网站需要哪些wordpress后台排版错乱
  • 开发一个网站的流程网站分析设计做的项目的过程
  • 用什么软件做商务网站傻瓜式app制作
  • 外汇黄金网站建设网页设计培训班上海
  • 免费空间asp网站源码网页版qq登录网址
  • 广东峰凌建设有限公司网站素材图下载
  • 商城网站框架网站改版seo方案
  • 成都网站网页制作北京神州网站建设
  • 网站正在建设中代码网站怎么做动态图片
  • 微信优惠券网站怎么做企业seo的措施有哪些
  • 汕头企业自助建站系统小视频制作软件
  • 网站搭建学什么专业wordpress5.0老版编辑器
  • 重庆网站设计生产厂家php做网站教程