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

(leetcode学习)236. 二叉树的最近公共祖先

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

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

示例 1:

输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1
输出:3
解释:节点 5 和节点 1 的最近公共祖先是节点 3 。

示例 2:

输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4
输出:5
解释:节点 5 和节点 4 的最近公共祖先是节点 5 。因为根据定义最近公共祖先节点可以为节点本身。

示例 3:

输入:root = [1,2], p = 1, q = 2
输出:1

提示:

  • 树中节点数目在范围 [2, 105] 内。
  • -109 <= Node.val <= 109
  • 所有 Node.val 互不相同
  • p != q
  • pq 均存在于给定的二叉树中。

跟着左神的视频课,参考了左神的解题方法,不过时间上打败30%,记录一下,以后提升。

TreeNode* find(TreeNode* cur){if(cur == NULL) return NULL;if(cur == Gp || cur == Gq) return cur;TreeNode* left = find(cur->left);TreeNode* right = find(cur->right);if(left != NULL && right != NULL){return cur;}return left == NULL ? right : left;}TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {Groot = root;Gp = p;Gq = q;return find(root);}

一样的代码又提交了一遍,时间反而变少了,真的神奇

http://www.lryc.cn/news/406716.html

相关文章:

  • Zabbix监控系统:zabbix服务部署+基于Proxy分布式部署+zabbix主动与被动监控模式
  • 【Vue实战教程】之 Vue Router 路由详解
  • 测试用例接口开发实战
  • C#中压缩文件夹,及其内容
  • 机器学习 | 回归算法原理——多项式回归
  • 力扣224【基本计算器】
  • 【Linux】HTTP 协议
  • @Builder注释导致@RequestBody的前端json反序列化失败,HTTP400
  • 网络学习|如何理解服务的端口号
  • 《0基础》学习Python——第十八讲__爬虫/<1>
  • NFTScan 浏览器现已支持 .mint 域名搜索功能!
  • Git基本原理讲解、常见命令、Git版本回退、Git抛弃本地分支拉取仓库最新分支
  • 前端网页打开PC端本地的应用程序实现方案
  • 遇到not allow unquoted fieldName怎么办
  • IDEA安装并使用通义灵码
  • <数据集>AffectNet表情识别数据集<目标检测>
  • ThinkPHP对接易联云打印
  • JavaScript轮播图
  • 修复SteamUI.dll加载失败的指南,快速修复failed to load steamui.dll
  • PCL Local Surface Patches 关键点提取
  • Vue与ASP.NET Core Web Api设置localhost与本地ip地址皆可访问
  • Android 线程池的面试题 线程线程池面试题
  • Flink时间和窗口
  • LLaMA模型量化方法优化:提高性能与减小模型大小
  • 前端CSS实现卡片抽奖效果
  • Java在for循环中修改集合
  • Java小白入门到实战应用教程-运算符详解
  • secureCRT同时在所有已打开窗口执行命令、mac-os下使用的SecureCRT版本 以及 SecureCRT一段时间不操作没有响应的问题
  • 增材制造与智能制造关系
  • Google Test 学习笔记(简称GTest)