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

力扣二叉树--第三十九天

前言

本来打算这几天不写题了,等待是痛苦的,复习完了就写写题吧,等待考试多焦虑啊。

内容

一、二叉树的最近公共祖先

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

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

递归
 func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {
     if root==nil{
         return root
     }
    if root==p||root==q{
        return root
    }
    left:=lowestCommonAncestor(root.Left,p,q)
    //递归地查找当前节点的左子树中的最低公共祖先
    right:=lowestCommonAncestor(root.Right,p,q)
    //递归地查找当前节点的右子树中的最低公共祖先
   if left!=nil&&right!=nil{
       return root
   }// 如果左子树和右子树都找到了最低公共祖先,那么当前节点 root 就是最低公共祖先。
   if left!=nil{
       return left
   }//如果左子树找到了最低公共祖先,那么返回左子树的最低公共祖先
  if right!=nil{
      return right
  }
  return nil
}
二、二叉搜索树的最近公共祖先

235. 二叉搜索树的最近公共祖先

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

递归
func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {
  for{
      if root.Val>p.Val&&root.Val>q.Val{
          root=root.Left
      }else if root.Val<p.Val&&root.Val<q.Val{
          root=root.Right
      }else{
          return root
      }
  }
}

最后

事情没有这么简单吧,我搜索二叉树的公共祖先,有一堆算法。。。以后再看吧。


http://www.kler.cn/a/159347.html

相关文章:

  • 实用且免费的 IP 地域查询 API 接口推荐
  • RabbitMQ实战启程:从原理到部署的全方位探索(上)
  • 游戏引擎学习第九天
  • Excel模板下载\数据导出
  • .NET 9 中 IFormFile 的详细使用讲解
  • Scala的Array
  • STM32-GPIO
  • 华清远见嵌入式学习——C++——作业6
  • 会话 cookie 及隐私的那些事
  • ruoyi框架一键改包程序
  • ubuntu 更换国内镜像
  • 备战春招——12.2算法
  • Ubuntu18.04 本地安装CVAT标注工具
  • UE4/UE5 材质实现带框环形进度条
  • 开启三层交换机DHCP服务
  • 二、ZooKeeper集群搭建
  • SQL int(1) 和 int (10)的区别
  • Learning Memory-guided Normality for Anomaly Detection 论文阅读
  • Linux环境搭建SVN服务器并结合内网穿透实现远程访问
  • Redis缓存问题
  • 《论文阅读》使用条件变分自动编码器学习神经对话模型的语篇水平多样性 2017 ACL
  • WebSocket 前端使用vue3+ts+elementplus 实现连接
  • 【开源视频联动物联网平台】J2mod库写一个Modbus RTU 服务器
  • CMake中的CACHE关键字
  • 【矩阵论】Chapter 8—范数与极限知识点总结复习
  • vue项目实现一键复制功能