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

题解

官方的题解就很清晰 https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/solution/er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian--2/

方法一:递归

public class Solution 
{public TreeNode LowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q){if((p.val < root.val) && (q.val < root.val))return LowestCommonAncestor(root.left,p,q);else if((p.val > root.val) && (q.val > root.val))return LowestCommonAncestor(root.right,p,q);elsereturn root;}
}

方法二:迭代

这个方法跟方法一很接近。唯一的不同是,我们用迭代的方式替代了递归来遍历整棵树。由于我们不需要回溯来找到 LCA 节点,所以我们是完全可以不利用栈或者是递归的。实际上这个问题本身就是可以迭代的,我们只需要找到分割点就可以了。这个分割点就是能让节点 pp 和节点 qq 不能在同一颗子树上的那个节点,或者是节点 pp 和节点 qq 中的一个,这种情况下其中一个节点是另一个节点的父亲节点。

public class Solution 
{public TreeNode LowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q){TreeNode node = root;while(node != null){if((p.val < node.val) && (q.val < node.val))node = node.left;else if((p.val > node.val) && (q.val > node.val))node = node.right;elsebreak;}return node;}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

判断鼠标是否在元素上_能不能从大便上判断出一个人是否患有结肠癌?

通过大便的观察是可以怀疑是否得了结肠癌的&#xff0c;但并不是由于从大便上诊断患者得了癌症这个病。结肠癌症诊断金标准结肠癌的诊断的金标准做肠镜&#xff0c;通过肠镜进行观察&#xff0c;看是否有癌症。如果不明显&#xff0c;通过肉眼无法判断&#xff0c;一般要通过病…

LeetCode 240. 搜索二维矩阵

因为矩阵的行和列是排序的&#xff08;分别从左到右和从上到下&#xff09;&#xff0c;所以在查看任何特定值时&#xff0c;我们可以修剪O(m)O(m)或O(n)O(n)元素。 算法&#xff1a; 首先&#xff0c;我们初始化一个指向矩阵左下角的 (row&#xff0c;col)(row&#xff0c;co…

win10兼容模式怎么设置_win10护眼模式关不掉怎么办

win10系统是一款非常值得使用的优秀系统!强大的智能是win10系统最让人喜欢的地方&#xff0c;各种各样贴心的设置可以让用户们在使用电脑的过程中得到最好舒适体验&#xff0c;但是一些小伙伴们并不知道怎么才能设置好想要的设置&#xff0c;今天小编为大家带来的就是win10关闭…

Unity 2017 Game Optimization 读书笔记 Scripting Strategies Part 5

一. Disable unused scripts and objects 场景中激活的物体或者脚本越多&#xff0c;开销越大。对于很多并没有产生作用的脚本和物体&#xff0c;可以隐藏掉从而提升性能&#xff0c;比如FPS游戏中视野外的部分。 1.Disabling objects by visibility 有时我们希望脚本和物体…

代码实现sql编译器_TiDB-Wasm 原理与实现 | Hackathon 优秀项目介绍

作者&#xff1a;Ti-Cool上周我们推送了《让数据库运行在浏览器里&#xff1f;TiDB WebAssembly 告诉你答案》&#xff0c;向大家展示了 TiDB-Wasm 的魅力&#xff1a;TiDB-Wasm 项目是 TiDB Hackathon 2019 中诞生的二等奖项目&#xff0c;实现了将 TiDB 编译成 Wasm 运行在浏…

C# int[,] 和 int[][]

原文链接&#xff1a;https://www.cnblogs.com/ILoveMyJob/p/9211102.html

java停车收费系统 源码开源_Java开源商城源码推荐,从菜鸡到大神,永远绕不开的商城系统

每个Java程序员&#xff0c;从懵逼菜鸡&#xff0c;再到懵懂菜鸟&#xff0c;再到小鸟&#xff0c;大鸟&#xff0c;最后到技术大神&#xff0c;始终绕不开商城系统&#xff0c;里面蕴含了大量的业务&#xff0c;涉及到了大量的知识点和解决方案。今天介绍一款Java开源商城源码…

安卓ps2模拟器_安卓PSP模拟器评测:合金装备 和平步行者

哈喽&#xff0c;大家好&#xff0c;好久没有玩PSP模拟器了&#xff0c;昨晚下载了一款PSP游戏的3A大作&#xff0c;这款游戏名字叫做《合金装备 和平步行者》&#xff0c;这款游戏发售时间是&#xff1a;2010年4月29日。本作是真真正正由小岛秀夫亲自主刀开发的系统正统作品&a…

UnityEngine.UI.dll 路径

2019.2之后&#xff0c;路径已经从 Unity安装目录下的Editor\Data\UnityExtensions移动到了 package里&#xff0c;通过package编译后生成的dll在工程目录下的library里

c++ 异步下获取线程执行结果_这份阿里技术官强推的java线程池笔记,建议你看一下

线程池线程是宝贵的内存资源,单个线程占1MB空间,过多分配易造成内存溢出频繁的创建及销毁线程会增加虚拟机回收频率、资源开销、造成程序性能下降因此线程池出现了线程池的概念线程容器,可设定线程分配的数量上限将预先创建的线程对象存入池中,并重用线程池中的线程对象避免频繁…

此应用无法在你的电脑上运行_能直运行iOS应用!苹果新macOS翻车 正式版下载后无法安装...

原标题&#xff1a;能直运行iOS应用&#xff01;苹果新macOS翻车 正式版下载后无法安装 今天&#xff0c;苹果正式推出了macOS Big Sur正式版&#xff0c;其是苹果为Mac电脑设计的下一代操作系统&#xff0c;最大的变化是在性能上&#xff0c;因为Big Sur是第一个以苹果自研处理…

springcloud 整合 gateway_从Spring Cloud到Kubernetes的微服务迁移实践

写在前面要出发周边游&#xff08;以下简称要出发&#xff09;是国内知名的主打「周边游」的在线旅行网站&#xff0c;为了降低公司内部各个业务模块的耦合度&#xff0c;提高开发、交付及运维效率&#xff0c;我们在 2017 年就基于 Spring Cloud 完成了公司内部业务微服务化的…

leetcode 191. 位1的个数

经典题目&#xff0c;位操作的小技巧&#xff1a;与操作 我们可以把前面的算法进行优化。我们不再检查数字的每一个位&#xff0c;而是不断把数字最后一个 1 反转&#xff0c;并把答案加一。当数字变成 00 的时候偶&#xff0c;我们就知道它没有 1 的位了&#xff0c;此时返回…

程序员如何跟领导提离职_如何优雅地跟老板提加薪?按照这3个步骤来,也不是什么难事...

通常情况下&#xff0c;如果你在一个制度比较健全的单位上班&#xff0c;基本上不需要自己提出加薪的要求&#xff0c;达到规定的条件自然就涨工资了。但是我们绝大部分人&#xff0c;是在中小企业上班&#xff0c;如果不跟老板提加薪要求&#xff0c;老板很难主动给你涨工资。…

leetcode 打印从1到最大的n位数

书上原题本想考的是大数问题&#xff0c;但是leetcode上要求的返回值是int&#xff0c;不可能出现当n过大时大数越界的问题&#xff0c; 失去了本题的意义。按大数问题处理&#xff0c;用string和递归来处理该问题。 public class Solution {public int[] PrintNumbers(int n) …

强制关机对电脑的影响_电脑强制关机,对电脑有影响吗?你被伪科普骗了多久?...

相信大多数人都会遇到这么个情况&#xff0c;就是电脑用着用着死机、卡顿&#xff0c;在毫无反应又动弹不得的情况下&#xff0c;采用的招数就是长按电源键10秒强制关机重启。这时候身边的“电脑高手”就会告诉我们说&#xff0c;这样关机会毁害电脑硬件。但它却是处理电脑假死…

vb.net限制软件使用次数_新增投屏及倍数播放,这款软件iOSAndroid全都有,影视神器,抓紧体验...

小小影视 Android、iOS版小小影视以前也分享过&#xff0c;最近貌似版本更新了&#xff0c;新增投屏和倍数播放功能&#xff0c;还没用过的可以下载体验&#xff01;小小影视APP是一款最全&#xff0c;最新&#xff0c;关键不止有Android版&#xff0c;还有iOS版的影音播放软件…

leetcode 调整数组顺序使奇数位于偶数前面

解法一&#xff1a;双指针 public int[] Exchange(int[] nums) {int head 0;int tail nums.Length - 1;while(head < tail){if((nums[head] & 1) 1){head;continue;}else if((nums[tail] & 1) 0){tail--;continue;}else{int temp nums[head];nums[head] nums[…

pytorch test单张图片_PyTorch版EfficientDet比官方TF实现快25倍?这个GitHub项目数天狂揽千星...

EfficientDet 难复现&#xff0c;复现即趟坑。在此 Github 项目中&#xff0c;开发者 zylo117 开源了 PyTorch 版本的 EfficientDet&#xff0c;速度比原版高 20 余倍。如今&#xff0c;该项目已经登上 Github Trending 热榜。机器之心报道&#xff0c;项目作者&#xff1a;zyl…