巧【二叉搜索树的最近公共祖先】【二叉搜索树的性质】Leetcode 235. 二叉搜索树的最近公共祖先

【二叉搜索树的最近公共祖先】【二叉搜索树性质】Leetcode 235. 二叉搜索树的最近公共祖先

    • 【巧】解法1 利用二叉搜索树有序的性质
    • 解法2 采用二叉树求最近公共祖先的方法——后序遍历

在这里插入图片描述

---------------🎈🎈235. 二叉搜索树的最近公共祖先 题目链接🎈🎈-------------------

【巧】解法1 利用二叉搜索树有序的性质

二叉搜索树的特点被应用
如果root大于p和q,说明p和q的最近公共祖先一定在当前节点的左子树中, 那么就只需要向左遍历
如果root小于p和q ,说明p和q的最近公共祖先一定在当前节点的右子树中, 那么就只需要向右遍历
如果root的值介于p和q之间,说明root一定是p和q的公共祖先,这时候返回root即可
—————————但需要怎么保证其是最近的公共祖先呢?其实二叉搜索树就直接保证了其是最近的

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root.val > p.val && root.val > q.val){  // 如果root大于p和q  那么就只需要向左遍历 结果不断return上去return lowestCommonAncestor(root.left,p,q);}if(root.val < p.val && root.val < q.val){ // 如果root小于p和q  那么就只需要向右遍历 结果不断return上去return lowestCommonAncestor(root.right,p,q);}// 如果等于或者root的值介于p和q之间,这时候返回root即可return root;}
}          

解法2 采用二叉树求最近公共祖先的方法——后序遍历

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root ==null) return null;if(root==p ||root==q) return root;TreeNode left = lowestCommonAncestor(root.left,p,q);TreeNode right = lowestCommonAncestor(root.right,p,q);if(left == null && right==null) return null;else if(left == null && right!=null) return right;else if(left != null && right==null) return left;else return root;}
}

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

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

相关文章

深度学习PyTorch 之 RNN-中文多分类【代码解析】

上篇文章给出了RNN-中文多分类的代码实现&#xff0c;本次主要是对RNN的架构进行一个详细的解析 1、主代码 class RNN(nn.Module):def __init__(self, vocab_size, embedding_dim, hidden_dim, output_dim, n_layers, bidirectional, dropout):super().__init__()# 初始化函数…

香杆箐骑行记,春回大地

2024年3月2日春回大地之际我们校长骑行群再次踏上征程前往香杆箐。这次骑行不仅是一次对身体的锻炼更是一次心灵的洗礼。 清晨的阳光洒满大地我们从郊野公园后门出发踏上了前往香杆箐的道路。沿途的风景如画绿树成荫鲜花盛开让人心旷神怡。我们沿着山路蜿蜒前行感受着大自然的韵…

UNIapp实现局域网内在线升级

首先是UNIapp 生成apk 用Hbuilder 进行打包 可以从网站https://www.yunedit.com/reg?gotocert 使用自有证书&#xff0c;目测比直接使用云证书要快一些。 发布apk 网站 用IIS发布即可 注意事项中记录如下内容 第一、需要在 iis 的MiMe 中添加apk 的格式&#xff0c;否则无法…

抖音视频批量采集软件|视频评论数据下载工具

特点一&#xff1a;关键词搜索&#xff0c;批量提取视频 工具不再受限于单个视频链接&#xff0c;支持通过关键词进行视频搜索&#xff0c;实现批量、有选择性的提取。只需简单的操作&#xff0c;输入想要搜索的视频关键词&#xff0c;点击开始抓取即可快速获取与关键词相关的视…

视频生成模型Sora的全面解析:从AI绘画、ViT到ViViT、DiT、VDT、NaViT、VideoPoet

视频生成模型Sora的全面解析&#xff1a;从AI绘画、ViT到ViViT、DiT、VDT、NaViT、VideoPoet 真没想到&#xff0c;举例视频生成上一轮的集中爆发才过去三个月&#xff0c;没想OpenAI一出手&#xff0c;该领域又直接变天了自打2.16日OpenAI发布sora以来&#xff0c;不但把同时…

揭秘8.4k星开发者的秘密武器:it-tools在线工具集,你不可不知!

在IT的世界里&#xff0c;为了更好地发挥自己的才能&#xff0c;必须善用优秀的工具。深入挖掘IT-Tools的神奇力量&#xff0c;让你的工作像魔法一般变得轻松高效&#xff01;无论是自动化、监控还是问题解决&#xff0c;这些工具是我们事业成功的关键利器。选择合适的IT工具&a…

力扣周赛387

第一题 代码 package Competition.The387Competitioin;public class Demo1 {public static void main(String[] args) {}public int[] resultArray(int[] nums) {int ans[]new int[nums.length];int arr1[]new int[nums.length];int arr2[]new int[nums.length];if(nums.leng…

数据库(易混知识点)

1.删除操作&#xff1a; DELETE&#xff1a;删除表中的行数据 DROP&#xff1a;删除视图 CLOSE&#xff1a;关闭游标 REVOKE&#xff1a;收回语句或对象许可 2.WHERE->GROUP BY->WHERE 筛选->分组->筛选 3.在视图上可以进行增删改查&#xff0c;也可以在视图…

Linux 设置快捷命令

以ll命令为例&#xff1a; 在 Linux 系统上&#xff0c;ll 命令通常不是一个独立的程序&#xff0c;而是 ls 命令的一个别名。 这个别名通常在用户的 shell 配置文件中定义&#xff0c;比如 .bashrc 或 .bash_aliases 文件中。 要在 Debian 上启用 ll 命令&#xff0c;你可以按…

Linux CentOS使用Docker部署Apache Superset并实现远程分析数据

文章目录 前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透&#xff0c;实现公网访问3. 设置固定连接公网地址 前言 Superset是一款由中国知名科技公司开源的“现代化的…

软考55-上午题-【数据库】-数据库设计步骤1

一、数据库设计的步骤 新奥尔良法&#xff0c;四个主要阶段&#xff1a; 1、用户需求分析&#xff1a;手机用户需求&#xff0c;确定系统边界&#xff1b; 2、概念设计&#xff08;概念结构设计&#xff09;&#xff1a;是抽象概念模型&#xff0c;较理想的是采用E-R方法。 …

2024上半年软考中级《软件设计师》报名考试全攻略

​2024年软考软件设计师考试报名时间节点&#xff1a; 报名时间&#xff1a;2024年上半年软考将于3月中旬陆续开始报名 考试时间&#xff1a;上半年5月25日到28日&#xff0c;下半年11月9日到12日 分数线&#xff1a;所有科目成绩全部在45分以上&#xff08;含45分&#xff…