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

怀柔重庆网站建设烟台网络推广

怀柔重庆网站建设,烟台网络推广,怎么做视频在线播放网站,镇江建设网站的公司236. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08…

236. 二叉树的最近公共祖先

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

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”


正文

根据递归的性质,在同一路径上,先遍历到的节点一定是后遍历到的节点的祖宗。

最近公共祖先有两种情况:

  1. 其中一个节点为最近公共祖先
  2. 两个节点所在的路径相交的那个节点为最近公共节点。

下面为代码,由于光是文字不好表达,我在代码块中嵌入注释来解释思路

 func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {//找到了或者当前寻找的路径为空,直接返回当前节点,帮助判断if root == nil || p == root || q == root {return root}//计算得出当前root的左儿子中是否存在p或者q,如果不存在则返回nil//如果存在,则返回p或ql := lowestCommonAncestor(root.Left, p, q)//同上r := lowestCommonAncestor(root.Right, p, q)//如果左右儿子都找到了,说明当前节点root就是最近公共祖先if l != nil && r != nil {return root}//说明并非左右儿子都找到了p或q,说明p或q其中一个是最近公共祖先if l != nil {return l}return r//递归传递l或者r,返回最终的答案。
}
http://www.dtcms.com/wzjs/197802.html

相关文章:

  • 合肥市人民政府官网12345青岛网站快速排名优化
  • 长治建一个网站大概要多少钱制作网页
  • 企业网站规划原则seo优化推广软件
  • 宁波网站推广方式定制公司新闻近期大事件
  • 企业网站建设的基本原则有哪些?多层次网络营销合法吗
  • 网站上的链接怎么做电子商务网站建设论文
  • 电子商务网站建设评估工具有哪些关键词优化的策略
  • 淘客怎么做网站成都网站seo报价
  • 湛江网站建设制作维护如何注册一个网站
  • 外贸网站域名能用cn做后缀吗seo如何优化
  • 微网站 底部导航菜单沈阳seo关键词排名
  • 西宁网站建设君博首选百度学术官网论文查重免费
  • 新化网站建设昆明百度搜索排名优化
  • 做我的奴隶 good网站厦门百度推广开户
  • 怎么建设一个简单的网站seo优化课程
  • 西藏城乡建设厅网站首页关键词调词平台哪个好
  • 自己做的网站找不到了就业seo好还是sem
  • 网站建设流程详解网站日常维护有哪些
  • 网站建设与管理的实训报告女教师遭网课入侵直播录屏曝光se
  • wordpress 调用参数seo外包公司哪家好
  • 做哪类英文网站赚钱百度全网营销
  • 做视频图片博客网站武汉百度快照优化排名
  • 做网站都用什么工具百度客服电话24小时
  • 网站建设可行性福州短视频seo平台
  • 专业商城网站制作抖音seo排名优化软件
  • 建设银行官方网站诚聘英才新河seo怎么做整站排名
  • 空壳网站抖音广告推广怎么收费
  • 眉山市建设局网站上海市人大常委会
  • 批量做网站软件国际新闻最新消息中国
  • 网站如何做跳转宁波网站推广公司价格