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

晾衣架 东莞网站建设咖啡网页怎么制作

晾衣架 东莞网站建设,咖啡网页怎么制作,网站建站方案说明书,河南响应式建站目录 6. 根据一棵树的前序遍历与中序遍历构造二叉树 题目 分析 代码 7. 根据一棵树的中序遍历与后序遍历构造二叉树 题目 分析 代码 8. 二叉树的前序遍历#xff0c;非递归迭代实现 题目 分析 代码 9. 二叉树中序遍历 #xff0c;非递归迭代实现 题目 分析 …目录 6. 根据一棵树的前序遍历与中序遍历构造二叉树 题目 分析 代码 7. 根据一棵树的中序遍历与后序遍历构造二叉树 题目 分析 代码 8. 二叉树的前序遍历非递归迭代实现  题目 分析 代码 9. 二叉树中序遍历 非递归迭代实现 题目 分析 代码 10. 二叉树的后序遍历 非递归迭代实现 题目 分析 代码 6. 根据一棵树的前序遍历与中序遍历构造二叉树 题目 OJ链接 分析 前序遍历的第一个结点一定是根节点根据根结点在中序结点的位置可以划分出根节点的左右结点范围然后根据递归调用不断地划分子树的左右结点代码如下 代码 class Solution { public:TreeNode* createTree(vectorint preorder, vectorint inorder,int cur,int begin,int end){if (begin end)return nullptr;int root begin;//寻找根节点在中序遍历的位置while (root end){if (preorder[cur] inorder[root])break;root;}TreeNode* ret new TreeNode(preorder[cur]);ret-leftcreateTree(preorder, inorder, cur, begin, root-1);ret-rightcreateTree(preorder, inorder, cur, root1, end);return ret;}TreeNode* buildTree(vectorint preorder, vectorint inorder) {if (preorder.empty() || inorder.empty())return nullptr;int cur0;int begin 0;int end inorder.size() - 1;return createTree(preorder, inorder,cur,begin,end);} }; 7. 根据一棵树的中序遍历与后序遍历构造二叉树 题目 OJ链接 分析 方法跟上一题类似只是后续遍历的根节点要从最后一位找并且向前遍历同时要注意先找右子树再找左子树。 代码 class Solution { public:TreeNode* createTree(vectorint postorder, vectorint inorder, int cur, int begin, int end){if (begin end)return nullptr;int root begin;while (root end){if (postorder[cur] inorder[root])break;root;}TreeNode* ret new TreeNode(postorder[cur--]);ret-right createTree(postorder, inorder, cur, root 1, end);ret-left createTree(postorder, inorder, cur, begin, root - 1);return ret;}TreeNode* buildTree(vectorint inorder, vectorint postorder) {if (postorder.empty() || inorder.empty())return nullptr;int cur inorder.size() - 1;int begin 0;int end cur;return createTree(postorder, inorder, cur, begin, end);} }; 8. 二叉树的前序遍历非递归迭代实现  题目 OJ链接 分析 任意一个树我们都可以分为两部分左路结点和左路结点的右子树如下图 左路结点的右子树又可以分为新的左路结点和左路结点的右子树 通过这种思路如下代码所示 代码 class Solution { public:vectorint preorderTraversal(TreeNode* root) {vectorint ans;if (root nullptr)return ans;TreeNode* cur root;stackTreeNode* st;while (!st.empty()||cur){//插入所有左路结点到栈中while (cur){st.push(cur);ans.push_back(cur-val);cur cur-left;}//对左路结点进行出栈并将左路结点的右子树的根作为新的cur结点//下一层循环访问右子树的所有左路结点插入到栈中TreeNode* top st.top();st.pop();cur top-right;}return ans;} }; 9. 二叉树中序遍历 非递归迭代实现 题目 OJ链接 分析 将上一题的ans.push_back放到下面既可以完成 代码 class Solution { public:vectorint inorderTraversal(TreeNode* root) {vectorint ans;if (root nullptr)return ans;TreeNode* cur root;stackTreeNode* st;while (!st.empty()||cur){while (cur){st.push(cur);cur cur-left;}TreeNode* top st.top();st.pop();ans.push_back(top-val);cur top-right;}return ans;} }; 10. 二叉树的后序遍历 非递归迭代实现 题目 OJ链接 分析 因为是后序遍历父亲结点最后插入所以要判断右结点是否为空或者右结点是上一次访问过的结点 代码 class Solution { public:vectorint postorderTraversal(TreeNode* root) {vectorint ans;if (root nullptr)return ans;TreeNode* prenode nullptr;TreeNode* cur root;stackTreeNode* st;while (!st.empty() || cur) {while (cur) {st.push(cur);cur cur-left;}TreeNode* top st.top();if (top-right nullptr || prenode top-right) {st.pop();ans.push_back(top-val);prenode top;} else {cur top-right;}}return ans;} };
http://www.zqtcl.cn/news/488119/

相关文章:

  • 衡水网站建设维护宝安官网网站建设比较好的
  • 网站建设的审批重庆建设工程信息网30系统
  • 泉州软件开发培训机构怎么做网站内部链接的优化
  • 网站定位是什么中国it外包公司排名
  • 洛阳微信平台网站建设网站成功案例分析
  • 网站建设在淘宝怎么分类深圳软件开发招聘信息
  • .net如何做网站个人网站的制作
  • 网站优化排名推广站长统计官方网站
  • 长沙wap网站建设wordpress 用户 函数
  • 淮安做网站的公司有哪些公司目前上海有几个区
  • 怎么做自动跳转网站建站之星 discuz
  • 网站建设开发合同范本页面设计有哪几种风格
  • 重庆做网站重庆做网站做公司网站建设价格
  • 住房建设部官方网站公示公告国内卖到国外的电商平台
  • 安徽省建设厅网站巅川建设有限公司宁波城乡建设网站
  • 做财务还是网站运营wordpress主题 微博
  • 为什么要用CGI做网站网站建设 自学 电子版 pdf下载
  • 建设网站的规则营销型网站建设jm3q
  • 深圳建网站价格防水堵漏公司做网站效果怎样
  • 网站建设东莞老铁博客外国炫酷网站网址
  • 笔杆子写作网站牡丹江信息网0453免费发布信息
  • 网站建设介绍推广用语解释seo网站推广
  • 加盟企业网站建设目的速卖通下载app
  • 阳江北京网站建设网页设计与网站建设pdf
  • 做考试平台的网站网站之前没备案
  • 网站维护要多久时间北京网站优化哪家好
  • 单页推广网站模版网站建设一个购买链接
  • 湖南门户网站设计公司免费自媒体网站
  • 美食网站建设项目预算域名解析站长工具
  • 网站如何备案工信局学网站开发首先学哪些基础