题解 | #二叉搜索树的最近公共祖先#

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

http://www.nowcoder.com/practice/d9820119321945f588ed6a26f0a6991f

简单容易写

思路:非递归,利用二叉搜索树的特点。左子树<根节点<右子树

  • 若p,q都比当前结点的值小,说明最近公共祖先结点在当前结点的左子树上,继续检查左子树;
  • 若p,q都比当前结点的值大,说明最近公共祖先结点在当前结点的右子树上,继续检查右子树;
  • 若p,q中一个比当前结点的值大,另一个比当前结点的值小,则当前结点为最近公共祖先结点

复杂度分析:基于二叉搜索策略,故时间复杂度O(log n),空间复杂度O(1)

public int lowestCommonAncestor (TreeNode root, int p, int q) {
		TreeNode curnode=root;//当前遍历结点
		while(true) {
			if(p<curnode.val&&q<curnode.val) curnode=curnode.left;//在左子树找
			else if(p>curnode.val&&q>curnode.val) curnode=curnode.right;//在右子树找
			else return curnode.val;
		}
	}
全部评论
老哥牛逼,我直接拿来主义
1 回复 分享
发布于 2023-05-09 11:07 陕西
牛皮
点赞 回复 分享
发布于 2022-04-21 18:22
nice!
点赞 回复 分享
发布于 2022-04-01 19:01
思路很nice
点赞 回复 分享
发布于 2022-02-27 15:42

相关推荐

06-14 19:09
门头沟学院 Java
darius_:给制造业搞的,什么物料管理生产管理,设备管理点检,最最关键的就是一堆报表看板。个人觉得没啥技术含量都是些基本的crud,但是业务很繁琐那种
点赞 评论 收藏
分享
迟缓的斜杠青年巴比Q...:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
评论
31
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务