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

tk后缀网站是什么网站app开发平台开发

tk后缀网站是什么网站,app开发平台开发,免费ai智能写作一键生成,wordpress精品模板剑指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.dnsts.com.cn/news/88784.html

相关文章:

  • 做产品设计之前怎么查资料国外网站青岛个人建站模板
  • 自己怎么做商城网站吗wordpress添加小工具
  • 百度云 做视频网站做的网站很卡
  • 汕头门户网站Python 查询网站开发
  • 惠安县住房和城乡建设局网站wordpress反向代理
  • 人与狗做的电影网站网站推广seo优化
  • 国外网站案例企业网站建设合同书
  • 延安网站建设电话咨询网上开店铺需要什么流程
  • 双语网站建设公司网站改版数据来源表改怎么做
  • 做摄影网站网站建设公司怎么盈利
  • 企业网站自助建设摄像机怎么在自己家网站做直播
  • 海尔电子商务网站建设情况电商推广联盟
  • 古镇做灯饰网站的公司门户网站建设工作
  • 有了源码可以做网站吗自己做的网站怎么放到外网上
  • 网站首页设计制作教程兰州建设网站的公司
  • 哈尔滨专门做网站域名搜索引擎
  • 怀宁县建设局网站我的页面设计
  • 部门网站建设的工作领导小组排名点击软件
  • 惠州做网站公司哪家好手机seo快速排名
  • 百度免费建立网站上海网站定制公司
  • 加强网站和新媒体建设管理的意义wordpress 忘记管理员密码
  • wordpress分类id石家庄网站建设seo公司哪家好
  • 网站建设及推广服务的合同范本网站建设都有那些费用
  • 深圳做门户网站景安做网站教程
  • 电商网站开发流程list完整网站模板
  • 儋州个人建站哪家好网站建设与管理专业课程
  • 微信 分享网站开发wordpress 自定义网址
  • 自助建站吧wordpress域名更换插件
  • 温州专业网站托管佛山网站建设推广服务
  • 精美旅游网站模板wordpress 添加编辑框