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

食品网站建设 网站定制开发建设银行四川分行网站

食品网站建设 网站定制开发,建设银行四川分行网站,一起做网店网站打不开,阿里云虚拟主机建网站重建二叉树一、递归法二、迭代法题目链接 题目描述#xff1a; 输入某二叉树的前序遍历和中序遍历的结果#xff0c;请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 1: Input: preorder [3,9,20,15,7], inorder [9,3,15,… 重建二叉树一、递归法二、迭代法题目链接 题目描述 输入某二叉树的前序遍历和中序遍历的结果请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 1: Input: preorder [3,9,20,15,7], inorder [9,3,15,20,7] Output: [3,9,20,null,null,15,7] 示例 2: Input: preorder [-1], inorder [-1] Output: [-1] 一、递归法 首先我们知道中序的左边就是该节点的左子树中序的右边就是该节点的右子树而确认根的顺序就需要靠前序。 所以我们可以用一个变量pi记录前序遍历的位置在中序中找到相同的元素然后把它的左右区间递归下去。 这里注意如果要每次递归都需要遍历中序找到根时间复杂度过高所以我们可以在递归前先用哈希表映射根的位置。 代码如下 class Solution { public:unordered_mapint, int index;TreeNode* _bulidTree(vectorint pre, vectorint in, int pi, int begin, int end){if (begin end) return nullptr;int mid index[pre[pi]];TreeNode* root new TreeNode(pre[pi]);root-left _bulidTree(pre, in, pi, begin, mid - 1);root-right _bulidTree(pre, in, pi, mid 1, end);return root;}TreeNode* buildTree(vectorint preorder, vectorint inorder) {int pi 0;for (int i 0; i preorder.size(); i){index[inorder[i]] i;}return _bulidTree(preorder, inorder, pi, 0, preorder.size() - 1);} };二、迭代法 三种顺序的迭代法遍历【数据结构】二叉树的非递归遍历 我们先假象一种情况一棵树只有左子树的话那么就相当于是一个单链表那么它的前序遍历和中序遍历就刚好是反过来的。那么我们就可以使用栈来逆序存放一旦遍历到最左下节点这时候就该返回开始弹栈当我们发现弹栈的顺序和中序遍历不一致的时候说明最后一个弹出来的节点有右子树。 可以发现前序走完后出栈顺序刚好是中序遍历的结果所以没有右子树。 代码如下 class Solution { public:TreeNode* buildTree(vectorint preorder, vectorint inorder) {if(preorder.empty()) return nullptr;stackTreeNode* st;int inorIndex 0;TreeNode* root new TreeNode(preorder[0]);st.push(root);for(int i 1; i preorder.size(); i){TreeNode* node st.top();if(node-val ! inorder[inorIndex]){node-left new TreeNode(preorder[i]);st.push(node-left);}else{while(!st.empty() st.top()-val inorder[inorIndex]){node st.top();st.pop();inorIndex;}node-right new TreeNode(preorder[i]);st.push(node-right);}}return root;} };
http://www.dnsts.com.cn/news/228265.html

相关文章:

  • 济南企业网站搭建赣州58同城网
  • 网站设计制作报价宁波市奉化区建设局网站
  • 上海网络科技公司官网wordpress模板优化
  • 品牌建设 网站网业是什么行业
  • 万维建设网站做公司网站需要多
  • 网站内容与模板设计方案代做网页
  • 大型网站建设洛阳网站制作泉州建设企业网站
  • 网站扫码充值怎么做的厦门做网站多
  • 大连新图闻网站设计厦门建设局保障房官网
  • 宠物食品 中企动力提供网站建设常州外贸网站设计
  • 做红酒闪购的网站有哪些天翼云主机 网站
  • wordpress menu温州百度推广排名优化
  • 企业网站如何备案流程信息网站开发网络公司
  • 做茶叶网站公司专业足球网站开发
  • 重庆有没有做网站的网络运行维护
  • 郑州陆港开发建设有限公司网站给一个学校网站做宣传海报
  • react做门户网站学历提升官网报名咨询
  • 做营销网站多少钱个人外贸网站制作
  • 企业营销网站服务器1g够厦门人才网招聘最新信息
  • 手机端网站开发视频教程做h5的网站
  • 网站验证图标wordpress数据库乱码
  • 自己做的网站放在服务器哪里跨境电商营销
  • 企业微网站案例怎么在百度发帖
  • 如何联系网站站长网站中的宣传册翻页动画怎么做
  • 建站之星app永嘉高端网站建设效果
  • 2016网站设计规范网站维护一年一般多少钱?
  • 网站首页制作教程泰安公司做网站
  • 放图片网站二级建造师证书查询系统官网
  • 怎样建网站宣传产品装修房子找哪家装修公司好
  • 网站容易做吗sem是什么缩写