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

网站设置二级域名好吗dede网站建设流程

网站设置二级域名好吗,dede网站建设流程,访问网站提示输入用户名密码,网站不备案行吗描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节…

描述:

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

百度百科中最近公共祖先的定义为:“对于有根树 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(p==root || q==root)return root;//情况一和情况二if (root==null)return null;TreeNode rootleft=lowestCommonAncestor(root.left,p,q);TreeNode rootright=lowestCommonAncestor(root.right,p,q);//情况三if(rootleft!=null && rootright!=null)return root;//情况三下的情况二//p和q都在左子树或右子树上,else if(rootleft!=null && rootright==null)return rootleft;else if(rootleft==null && rootright!=null)return rootright;return null;//没有找到}}

方法二 

思路我们用两个栈分别存储root到p和q经过的节点路径,当递归到某个节点时,这个节点的左右子树都没有p或者q,说明该节点不是路径上的节点,出栈,两个栈存储完毕后保证两个栈的大小长度一样,一块出栈,当出栈元素相同时就是交点
 public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root==null)return null;Stack<TreeNode> stack_q=new Stack<>();Stack<TreeNode>stack_p=new Stack<>();getStack(root,stack_p,p);//寻找从根节点到p节点路径getStack(root,stack_q,q);//寻找从根节点到q节点路径int size_p=stack_p.size();int size_q=stack_q.size();//保证连个栈的长度一样if(size_p>size_q){for (int i = 0; i < size_p-size_q; i++) {stack_p.pop();}} else if (size_p<size_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,Stack<TreeNode> stack,TreeNode key){if(root==null)return false;stack.push(root);if(root==key)return true;boolean figleft=getStack(root.left,stack,key);if(figleft)return true;//左边找到了节点boolean figright=getStack(root.right,stack,key);if (figright)return true;//右边找到了节点stack.pop();//该节点的左右子树都没有寻找的节点,从栈上,或者路径上移除return false;}
http://www.yayakq.cn/news/836123/

相关文章:

  • 设置网站关键词营销型网站建设的五力原则
  • 国外做问卷网站wordpress如何通过主题修改内容
  • 湖北省建设厅官方网站文件杭州网站建设公司有哪几家
  • 科技网站设计公司排名手机怎么打开禁止访问的网站
  • 企业建站用什么主机无锡网络营销推广软件
  • 电子商务网站的开发方式有哪三种江门特色
  • 网站如何百度收入比较有趣的网站
  • 做企业网站设计与实现手机管理wordpress
  • 网站地图怎么用镇江市住房城乡建设局网站
  • 深圳网站建设 信科网络全部游戏免费(试玩)
  • 怎么建立和设计网站wordpress 函数调用
  • wordpress网站刷新网站建设沟通准备
  • 单页导航网站模板有哪些好玩的网页游戏
  • 网站上图片不能下载 该怎么做做微信小程序和做网站
  • 民营建筑网站咨询服务网站源码
  • 漳浦网站制作在线做头像的网站
  • 北京诚通新新建设有限公司网站东平建设局网站
  • 南城网站建设公司策划中国上海门户网站
  • 移动端网站怎么制作wordpress 历史
  • 淄博网站建设 熊掌号wordpress手机号码登录
  • 电脑网站制作有关网站开发的参考文献
  • 企业管理培训公司排名惠州市企业网站seo营销工具
  • 辽宁省城乡住房和建设厅网站上海ktv最新通知
  • 外贸建站的公司建设网站呼叫中心有什么好处
  • 新手学做网站优化怎样做一个自己的网站
  • 贵阳网站建设加q479185700wordpress logo修改
  • 网站收录查询爱站社群营销的十大步骤
  • 宁夏网站建设联系电话互联网做网站怎么赚钱
  • 网站运营及推广方案南昌网站建设方案报价
  • 自助建站软件下载网上购物平台排行