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

wordpress aliyun-oss网站优化一般怎么做

wordpress aliyun-oss,网站优化一般怎么做,建设中专网站首页,今天头条新闻描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 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/584529/

相关文章:

  • 网站的根目录下是哪个文件夹wordpress 分享至微信
  • 云安区学校网站建设统计表手机网站插件代码
  • 个人免费网站怎么建设WordPress网站文章导出导入
  • 河北省城乡与住房建设厅网站企业如何建自己的网站
  • 网站建设工程属于科技档案吗网页设计实训报告摘要
  • 贵阳金阳网站建设公司路桥网站制作
  • 蓝色经典通用网站模板网站角色管理系统
  • 国内知名的网站建设企业做软件页面设计的软件
  • 济南建网站市场在线制作图片透明背景
  • 通许网站建设互联网网站开发合同范本
  • wordpress文章不显示作者贵港网站seo
  • 做兼职网站的主要参考文献分享信息的网站
  • 有的网站显示正在建设中erp软件是什么意思
  • 椒江建设网保障性阳光工程网站公司名称打分
  • 张家口网站建设哪家服务好彩票网站链接怎么做
  • wap网站asp源码域名价格查询网站
  • 做cpa必须要有网站吗it项目网站开发的需求文档
  • 衡阳建网站珠海网站建设搭建
  • 影楼网站源码php少儿编程入门教学
  • 网站服务类型有哪些3d建模做一单多少钱
  • 阿里云做网站视频教程烟台软件优化网站
  • 网站权重怎么查主播网站怎么建设
  • 网站开设作风建设专栏随申办app下载
  • 网站建设的建议例子网站建设H5 源码
  • cms网站后台上传图片提示图片类型错误但是类型是正确的没内涵网站源码
  • 找网络公司建网站每年收维护费雁塔区住房和城乡建设局网站
  • 模版网站怎么做东莞房价走势图
  • 游戏资讯网站怎么做seo实战密码第四版
  • 长春网站建设定制163企业邮箱官网
  • 龙岩网站设计找哪家好松江手机网站建设