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

深圳网站制作必选祥奔科技工程承包合同协议书

深圳网站制作必选祥奔科技,工程承包合同协议书,wordpress用php版本,长沙网红打卡点【C二叉树】进阶OJ题 目录 【C二叉树】进阶OJ题1.二叉树的层序遍历II示例代码解题思路 2.二叉搜索树与双向链表示例代码解题思路 3.从前序与中序遍历序列构造二叉树示例代码解题思路 4.从中序与后序遍历序列构造二叉树示例代码解题思路 5.二叉树的前序遍历#xff08;非递归迭…【C二叉树】进阶OJ题 目录 【C二叉树】进阶OJ题1.二叉树的层序遍历II示例代码解题思路 2.二叉搜索树与双向链表示例代码解题思路 3.从前序与中序遍历序列构造二叉树示例代码解题思路 4.从中序与后序遍历序列构造二叉树示例代码解题思路 5.二叉树的前序遍历非递归迭代实现示例代码解题思路 6.二叉树的中序遍历非递归迭代实现示例代码解题思路 7二叉树的后序遍历非递归迭代实现示例代码解题思路 作者爱写代码的刚子 时间2023.9.6 前言本篇博客总结了一些二叉树有关的一些中等难度OJ题总结这些题的解题思路 1.二叉树的层序遍历II 题目链接 示例代码 class Solution { public:vectorvectorint levelOrderBottom(TreeNode* root) {vectorvectorint vv;if(!root){return vv;}queueTreeNode* q;q.push(root);while(!q.empty()){int curlevel q.size();vv.push_back(vectorint ());while(curlevel--){TreeNode *frontq.front();vv.back().push_back(front-val);q.pop();if(front-left){q.push(front-left);}if(front-right){q.push(front-right);}}}reverse(vv.begin(),vv.end());return vv;} };解题思路 选择使用队列来实现 注意这里使用变量curlevel来记录每层的元素个数并且第二个while循环中需要curlevel来计数因为题目中要求返回 vectorvector所以记录每层的元素个数是必要的。 由于题目要求返回自底向上的层序遍历所以我们还需要reverse函数将vectorvector容器进行反转。 2.二叉搜索树与双向链表 题目链接 示例代码 class Solution { public:void test(TreeNode* cur,TreeNode* prev){if(curnullptr){return;}test(cur-left,prev);cur-leftprev;if(prev)//注意prev可能为nullptr{prev-rightcur;}prevcur;test(cur-right,prev);}TreeNode* Convert(TreeNode* pRootOfTree) {TreeNode*prevnullptr;test(pRootOfTree,prev);TreeNode* leftoverpRootOfTree;while(leftoverleftover-left){leftoverleftover-left;}return leftover;} }; 解题思路 采用中序遍历由于二叉树遍历的特殊性我们无法找到下一个遍历的对象所以我们设立新旧指针cur和prev由于根节点prev未知所以我们传入nullptr我们让cur指针先走对旧节点的指针朝向进行修改prev的left和right指针如图 本质其实就是让cur先走记录先前节点prev并修改先前节点的指针朝向。 3.从前序与中序遍历序列构造二叉树 题目链接 示例代码 class Solution { public:TreeNode* test(vectorint preorder, vectorint inorder,int begini,int prei,int endi){if(beginiendi){return nullptr;}TreeNode* rootnew TreeNode(preorder[prei]);int rootibegini;while(rootiendi){if(preorder[prei]inorder[rooti]){break;}else{rooti;}}prei;root-lefttest(preorder, inorder,begini,prei,rooti-1);root-righttest(preorder, inorder,rooti1,prei,endi);return root;}TreeNode* buildTree(vectorint preorder, vectorint inorder) {int i0;return test(preorder,inorder,0,i,preorder.size()-1);} };解题思路 前序遍历可以确定根节点的位置 确定了根再去中序遍历里找到对应的根 两者遍历的图示 观察图示结构我们可以将前序遍历中的数据从左到右进行遍历一次将遍历的节点作为根节点 观察图示结构我们利用前序遍历中定的根节点在中序遍历中找到对应的位置用中序遍历的结构来进行递归类似分治 递归的结束条件就是递归到子叶节点时子叶节点再进行递归递归区间有误。beginiendi 4.从中序与后序遍历序列构造二叉树 题目链接 示例代码 class Solution { public:TreeNode*test(vectorint inorder, vectorint postorder,int begini,int prei,int endi){if(beginiendi){return nullptr;}TreeNode*rootnew TreeNode(postorder[prei]);int rootiendi;while(rootibegini){if(inorder[rooti]postorder[prei]){break;}--rooti;}--prei;root-righttest(inorder, postorder,rooti1,prei,endi);root-lefttest(inorder, postorder,begini,prei,rooti-1);//root-righttest(inorder, postorder,rooti1,prei,endi);return root;}TreeNode* buildTree(vectorint inorder, vectorint postorder) {int ipostorder.size()-1;return test(inorder, postorder,0,i,i);} };解题思路 思路与《从中序与后序遍历序列构造二叉树》类似先画图 我们发现与《从中序与后序遍历序列构造二叉树》这道题中的结构类似所以考虑后序遍历序列从右往左遍历依次将访问的节点作为根节点 注意后序遍历中访问完根节点后访问的是右节点所以我们应先构造右子树将《从中序与后序遍历序列构造二叉树》题中的示例代码中两个递归入口交换顺序即可 5.二叉树的前序遍历非递归迭代实现 题目链接 示例代码 class Solution { public:vectorint preorderTraversal(TreeNode* root) {vectorint v;stackTreeNode* st;TreeNode* tmproot;while(tmp||!st.empty()){while(tmp){v.push_back(tmp-val);st.push(tmp);tmptmp-left;}tmpst.top()-right;st.pop();}return v;} };解题思路 使用vector和stack先将二叉树最左边的节点push进栈将节点储存的值push_back进vector再取出栈顶元素控制指针进入栈顶元素节点的右子树并pop该栈顶元素重复以上步骤图示 6.二叉树的中序遍历非递归迭代实现 题目链接 示例代码 class Solution { public:vectorint inorderTraversal(TreeNode* root) {stackTreeNode* st;vectorint v;TreeNode* curroot;while(cur||!st.empty()){while(cur){st.push(cur);curcur-left;}TreeNode* topst.top();v.push_back(top-val);curtop-right;st.pop();}return v;} };解题思路 过程与前序遍历类似只是访问的时机不同中序遍历要在所有左子树push进栈后再进行访问并pop栈顶元素 7二叉树的后序遍历非递归迭代实现 题目链接 示例代码 class Solution { public:vectorint postorderTraversal(TreeNode* root) {stackTreeNode* st;vectorint v;TreeNode* curroot;TreeNode* prevnullptr;while(cur||!st.empty()){while(cur){st.push(cur);curcur-left;}TreeNode* topst.top();if(top-rightnullptr||top-rightprev){prevtop;v.push_back(top-val);st.pop();}else{curtop-right;}}return v;} };解题思路 我们需要设定访问时机当右子树已经访问完了或者没有右子树时进行访问。如何判读右子树是否访问完了要引入prev指针记录上一个访问的节点判断prev是否等于当前节点top的右子树。注意这里使用的是if…else语句并不是无脑curtop-right
文章转载自:
http://www.morning.zqnmp.cn.gov.cn.zqnmp.cn
http://www.morning.whothehellami.com.gov.cn.whothehellami.com
http://www.morning.tfkqc.cn.gov.cn.tfkqc.cn
http://www.morning.xjnjb.cn.gov.cn.xjnjb.cn
http://www.morning.ssjry.cn.gov.cn.ssjry.cn
http://www.morning.dsprl.cn.gov.cn.dsprl.cn
http://www.morning.nzcys.cn.gov.cn.nzcys.cn
http://www.morning.qtwd.cn.gov.cn.qtwd.cn
http://www.morning.lmmkf.cn.gov.cn.lmmkf.cn
http://www.morning.qtqk.cn.gov.cn.qtqk.cn
http://www.morning.pymff.cn.gov.cn.pymff.cn
http://www.morning.nnhfz.cn.gov.cn.nnhfz.cn
http://www.morning.snnb.cn.gov.cn.snnb.cn
http://www.morning.plfy.cn.gov.cn.plfy.cn
http://www.morning.qrqg.cn.gov.cn.qrqg.cn
http://www.morning.gjmll.cn.gov.cn.gjmll.cn
http://www.morning.wfykn.cn.gov.cn.wfykn.cn
http://www.morning.lrskd.cn.gov.cn.lrskd.cn
http://www.morning.hmpxn.cn.gov.cn.hmpxn.cn
http://www.morning.kdpal.cn.gov.cn.kdpal.cn
http://www.morning.dpwcl.cn.gov.cn.dpwcl.cn
http://www.morning.nj-ruike.cn.gov.cn.nj-ruike.cn
http://www.morning.qmnhw.cn.gov.cn.qmnhw.cn
http://www.morning.rwlsr.cn.gov.cn.rwlsr.cn
http://www.morning.znknj.cn.gov.cn.znknj.cn
http://www.morning.bwznl.cn.gov.cn.bwznl.cn
http://www.morning.lznqb.cn.gov.cn.lznqb.cn
http://www.morning.fkyrk.cn.gov.cn.fkyrk.cn
http://www.morning.jcpq.cn.gov.cn.jcpq.cn
http://www.morning.fjmfq.cn.gov.cn.fjmfq.cn
http://www.morning.rggky.cn.gov.cn.rggky.cn
http://www.morning.bdtpd.cn.gov.cn.bdtpd.cn
http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn
http://www.morning.rnyhx.cn.gov.cn.rnyhx.cn
http://www.morning.gbkkt.cn.gov.cn.gbkkt.cn
http://www.morning.pxdgy.cn.gov.cn.pxdgy.cn
http://www.morning.mmynk.cn.gov.cn.mmynk.cn
http://www.morning.kqzxk.cn.gov.cn.kqzxk.cn
http://www.morning.rjyd.cn.gov.cn.rjyd.cn
http://www.morning.pxlsh.cn.gov.cn.pxlsh.cn
http://www.morning.fengnue.com.gov.cn.fengnue.com
http://www.morning.prmyx.cn.gov.cn.prmyx.cn
http://www.morning.jyznn.cn.gov.cn.jyznn.cn
http://www.morning.trplf.cn.gov.cn.trplf.cn
http://www.morning.mgzjz.cn.gov.cn.mgzjz.cn
http://www.morning.hcsqznn.cn.gov.cn.hcsqznn.cn
http://www.morning.mhybs.cn.gov.cn.mhybs.cn
http://www.morning.qphcq.cn.gov.cn.qphcq.cn
http://www.morning.jcrlx.cn.gov.cn.jcrlx.cn
http://www.morning.kcrw.cn.gov.cn.kcrw.cn
http://www.morning.tpxgm.cn.gov.cn.tpxgm.cn
http://www.morning.jrlgz.cn.gov.cn.jrlgz.cn
http://www.morning.mzcrs.cn.gov.cn.mzcrs.cn
http://www.morning.yxgqr.cn.gov.cn.yxgqr.cn
http://www.morning.ckhry.cn.gov.cn.ckhry.cn
http://www.morning.klrpm.cn.gov.cn.klrpm.cn
http://www.morning.znkls.cn.gov.cn.znkls.cn
http://www.morning.htbsk.cn.gov.cn.htbsk.cn
http://www.morning.pghfy.cn.gov.cn.pghfy.cn
http://www.morning.dthyq.cn.gov.cn.dthyq.cn
http://www.morning.nxfwf.cn.gov.cn.nxfwf.cn
http://www.morning.mtsgx.cn.gov.cn.mtsgx.cn
http://www.morning.ffwrq.cn.gov.cn.ffwrq.cn
http://www.morning.jgcxh.cn.gov.cn.jgcxh.cn
http://www.morning.jnzfs.cn.gov.cn.jnzfs.cn
http://www.morning.lrnfn.cn.gov.cn.lrnfn.cn
http://www.morning.xbyyd.cn.gov.cn.xbyyd.cn
http://www.morning.cwgpl.cn.gov.cn.cwgpl.cn
http://www.morning.fyglr.cn.gov.cn.fyglr.cn
http://www.morning.ljzss.cn.gov.cn.ljzss.cn
http://www.morning.nktgj.cn.gov.cn.nktgj.cn
http://www.morning.zxhhy.cn.gov.cn.zxhhy.cn
http://www.morning.qpsxz.cn.gov.cn.qpsxz.cn
http://www.morning.wjdgx.cn.gov.cn.wjdgx.cn
http://www.morning.ntlxg.cn.gov.cn.ntlxg.cn
http://www.morning.symgk.cn.gov.cn.symgk.cn
http://www.morning.kxbry.cn.gov.cn.kxbry.cn
http://www.morning.clpdm.cn.gov.cn.clpdm.cn
http://www.morning.sxmbk.cn.gov.cn.sxmbk.cn
http://www.morning.ghwdm.cn.gov.cn.ghwdm.cn
http://www.tj-hxxt.cn/news/234627.html

相关文章:

  • 惠阳网站建设公司网站建设的原因
  • 网站上线注意物联网的含义是什么意思
  • 电商网站目录优化中国建设建设工程造价管理协会网站
  • 给实体店老板做的网站企业建设网站需注意哪些内容
  • 黑河网站建设网站开发进度控制计划表
  • 好的平面设计灵感网站如何做文化传播公司网站
  • 大连做网站建设永嘉网站建设几
  • 主流建站公司阿里云云虚拟主机
  • 网站建设维护文档seo综合查询怎么关闭
  • 阿里云备案个人可以做网站吗网站建设教育培训
  • 学习电子商务网站建设与管理的收获6到哪查找网站域名
  • 网站运营专员做什么wordpress图片 外链
  • 南沙网站建设方案广州公司网站提供
  • 建立个人网站需要什么装修设计网站有哪些
  • 广州公司网站设计制作深圳招聘网最新招聘信息
  • 包头教育云平台网站建设高端网站设计报价
  • 找题做的网站网站开发发帖语言
  • 常州淄博网站优化怎样做网络营销推广网站营销推广
  • 深圳建立企业网站wordpress返现
  • 大理石在哪些网站做宣传元气森林网络营销案例
  • 主题资源网站建设反思加盟网站需要怎么做
  • 萍乡网站优化wordpress 表格不显示线
  • 公司网站域名及空间阿里云域名注册邮箱
  • 网站开发进度安排如何进行电子商务网站建设规划
  • 做经营性的网站需要注册什么wordpress读什么
  • 网站建设需要具备怎么才能有自己的网站
  • icann官方网站食品包装设计ppt
  • 网站建设与推广工资空气净化器用什么网站做外贸
  • 菏泽+网站建设公司江苏建设工程信息网网
  • 迈创网站建设重庆网站建设 重庆网站制作