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

哈尔滨模板建站多少钱筑龙网官网首页

哈尔滨模板建站多少钱,筑龙网官网首页,微网站开发技术,百度网站的建设描述#xff1a; 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为#xff1a;“对于有根树 T 的两个节点 p、q#xff0c;最近公共祖先表示为一个节点 x#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大#xff08;一个节…描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为“对于有根树 T 的两个节点 p、q最近公共祖先表示为一个节点 x满足 x 是 p、q 的祖先且 x 的深度尽可能大一个节点也可以是它自己的祖先。” 方法一 思路情况一p或者q其中一个是root,直接返回root情况二p或者q分别在root的左右子树上递归找到root情况三p和q都在左子树或右子树上这样有可能是递归后得到的情况一或者是递归后的情况二 //给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。前提q!p //https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/description/ //思路情况一p或者q其中一个是root,直接返回root情况二p或者q分别在root的左右子树上递归找到root //情况三p和q都在左子树或右子树上这样有可能是递归后得到的情况一或者是递归后的情况二 //csdn: public class Test4 {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(proot || qroot)return root;//情况一和情况二if (rootnull)return null;TreeNode rootleftlowestCommonAncestor(root.left,p,q);TreeNode rootrightlowestCommonAncestor(root.right,p,q);//情况三if(rootleft!null rootright!null)return root;//情况三下的情况二//p和q都在左子树或右子树上else if(rootleft!null rootrightnull)return rootleft;else if(rootleftnull rootright!null)return rootright;return null;//没有找到}} 方法二  思路我们用两个栈分别存储root到p和q经过的节点路径当递归到某个节点时这个节点的左右子树都没有p或者q,说明该节点不是路径上的节点出栈两个栈存储完毕后保证两个栈的大小长度一样一块出栈当出栈元素相同时就是交点 public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(rootnull)return null;StackTreeNode stack_qnew Stack();StackTreeNodestack_pnew Stack();getStack(root,stack_p,p);//寻找从根节点到p节点路径getStack(root,stack_q,q);//寻找从根节点到q节点路径int size_pstack_p.size();int size_qstack_q.size();//保证连个栈的长度一样if(size_psize_q){for (int i 0; i size_p-size_q; i) {stack_p.pop();}} else if (size_psize_q) {for (int i 0; i size_q - size_p; i) {stack_q.pop();}}//一块出一个元素当元素相同时就是交点while (stack_p!null){if(stack_p.peek()stack_q.peek())return stack_p.pop();else {stack_p.pop();stack_q.pop();}}return root;}public boolean getStack (TreeNode root,StackTreeNode stack,TreeNode key){if(rootnull)return false;stack.push(root);if(rootkey)return true;boolean figleftgetStack(root.left,stack,key);if(figleft)return true;//左边找到了节点boolean figrightgetStack(root.right,stack,key);if (figright)return true;//右边找到了节点stack.pop();//该节点的左右子树都没有寻找的节点从栈上或者路径上移除return false;}
http://www.hkea.cn/news/14474458/

相关文章:

  • 免费建站的网站有哪些网站建设推广服务
  • 最简单网站建设c2c模式为消费者提供了便利和实惠
  • 手机app制作网站模板中学网站管理系统下载
  • 互联网站备案表未来做哪个网站能致富
  • 网站免费获取验证码怎么做全网媒体整合推广平台
  • 免费网站建设的个人的网站备案多少钱
  • 群晖做网站需要备案吗百度站长提交网址
  • 建设一个门户网站需要多久上海seo及网络推广
  • 13572074638网站建设wordpress知言破解
  • 做海外市场什么网站推广视频播放网站模板
  • 牛网站建设WordPress的footer文件
  • 网站开发常见面试题flashfxp如何发布网站
  • 江门电商网站设计培训企业网站一般做多宽
  • wordpress加速网站插件做招商网站
  • 删除百度收录网站怀柔谁会网站开发
  • 做网站代理商好赚吗?长沙建一个网站大概要多少钱
  • 子公司网站备案星空无限传媒在线观看电视剧赘婿
  • 网站没有建设好可以备案吗河北建筑工程学院招生网官网
  • 网站开发包括建设银行代发工资清单网站
  • 网站备案在哪查建设旅游网站目的
  • 上海市建设协会考试网站建站都需要什么
  • 顺德门户网站建设公司天天清茶 湖南网站建设
  • 服装电子商务网站建设网站图片类型
  • 有限公司在线网站成都网站的建设
  • 河北省建设执业注册中心网站wordpress视频居中
  • 中国医院建设协会网站首页网站制作内容
  • 大型门户网站建设费用杭州义牛网络技术有限公司
  • 四川省住建厅官方网站秦皇岛海三建设董事长
  • 百度统计网站速度诊断工具高端酒店网站模板免费下载
  • mysql 网站开发 问好app网站搭建