LeetCode:235. 二叉搜索树的最近公共祖先(Lowest Common Ancestor of a Binary Search Tree)

leetcode 235. Lowest Common Ancestor of a Binary Search Tree | 235. 二叉搜索树的最近公共祖先(哈希表) 题目 https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/ 题解 哈希表解法思路来自左程云《程序员代码面试指南》 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val 阅读详情

二叉搜索树性质:

1、任意节点node,其左子树中的val不大于node.val,其右子树中的val不小于node.val。

2、不同的二叉搜索树可以代表同一组值的集合

3、二叉搜索树的基本操作和树的高度成正比,所以如果是一棵完全二叉树的最坏运行时间为O(logn),但若是一个n个节点连接成的线性树,那么最坏运行时间是O(n)。

思路:这里主要用到第一个性质

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        if (root == NULL || p == root || q == root){
            return root;
        }
        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);
        }
        else{
            return root;
        }
    }
};

 

二叉树最近最近公共祖先 Java语言,通过栈的方法建立二叉树,递归求最近共同祖先结点 立即下载

相关推荐

一位海外开发者的 OpenSPG KAG 实践分享

KAG 是一个以创建和操作知识图谱为核心的框架。知识图谱是数据之间相互关联的可视化和结构化表示,对于搜索引擎、推荐系统和机器学习等应用至关重要。KAG 的目标是提供一个强大的平台,使开发者能够:轻松构建图谱;通过增强算法丰富数据;集成人工智能,以进行更精确的推理。通过理解 KAG,可以明显看出,这个框架旨在帮助从初学者到专业开发者,在项目中创造更优的解决方案。它在简便性和集成方面的优势,使其成为下一代基于数据的应用程序的前景工具。

金融机器智能社区 3405

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

给定一棵二叉搜索树的先序遍历序列,要求你找出任意两结点的最近公共祖先结点(简称 LCA)。 输入格式: 输入的第一行给出两个正整数:待查询的结点对数 M(≤1 000)和二叉搜索树中结点个数 N(≤10 000)。随后一行给出 N 个不同的整数,为二叉搜索树的先序遍历序列。最后 M 行,每行给出一对整数键值 U 和 V。所有键值都在整型int范围内。 输出格式: 对每一对给定的 U 和 V,如果找到A是它们的最近公共祖先结点的键值,则在一行中输出LCA of U and V is A.。但...

北边一颗小星星 1831

SAP FI 提示没有为会计年度0 定义版本2025 GP626

SAP 错误 GP626 是一个常见的系统消息,通常表示某个会计年度的版本(如版本 0)未被定义或未激活。:在执行某些事务(如创建采购订单、过账凭证或维护成本中心)时,系统会检查相关版本是否已定义。的“Settings for Each Fiscal Year”界面中,选择一个已激活的会计年度。的“Settings for Each Fiscal Year”界面中,找到未激活的会计年度。:在控制范围(Controlling Area)中,未为指定的会计年度定义版本 0。如果没有,添加或复制现有年度的设置。

GAVIN 2491

PTA 6-5 二叉搜索树中的最近公共祖先

在一棵树T中两个结点u和v的最近公共祖先(LCA),是树中以u和v为其后代的深度最大的那个结点。现给定某二叉搜索树(BST)中任意两个结点,要求你找出它们的最近公共祖先。

missing_snoopy的博客 1592

Ubuntu安装有线网卡驱动

问题:插入网线后,无法识别有线连接。 原因:主板有线网卡的型号和系统中网卡的驱动不匹配 解决 前提条件: 需要连wifi通网,因为需要安装dkms,和下载驱动。 删除原驱动 1、查看网卡型号 lspci | grep net 我的网卡型号是8125 2、查看网卡驱动 lspci -k 网卡驱动是r8169 3、卸载网卡驱动 找出位置 modinfo r8169 | grep filename 然后删除 rm path/r8169.ko 卸载驱动 rmmod r8169 查看是否卸载成功 lsm

weixin_43932656的博客 1万+

【抖音】a_bogus参数逆向分析

点击——展开xxx条回复﹀就会出现。可以看到这个栈是有请求相关的数据的。所以就是在bdms.js里面生成的。

qq_44990881的博客 3000

pta 树最近公共祖先 二叉树表示法

树最近公共祖先

bfj11的博客 3131

UE5多人联机实战:从零搭建LAN游戏房间(含UMG界面配置)

本文详细介绍了如何在UE5中从零开始搭建一个完整的局域网(LAN)多人游戏房间系统。内容涵盖项目基础配置、UMG主菜单设计、会话创建与搜索的核心实现,并重点解析了创建会话的关键参数配置与常见陷阱,帮助开发者快速掌握UE5多人联机开发的核心流程。

weixin_29001683的博客 690

每日一题——二叉搜索树的最近公共祖先

利用二叉搜索树的性质:对于某一个节点若是p与q都小于这个这个节点值,说明p、q都在这个节点的左子树,而最近的公共祖先也一定在这个节点的左子树;若是p与q都大于这个节点,说明p、q都在这个节点的右子树,而最近的公共祖先也一定在这个节点的右子树。而若是对于某个节点,p与q的值一个大于等于节点值,一个小于等于节点值,说明它们分布在该节点的两边,而这个节点就是最近的公共祖先。

吴尼玛cs 400

deepfake detection数据集

最全Deepfake数据集总结,包含各个数据集下载链接: https://github.com/deepfakeinthewild/deepfake_in_the_wild Dataset name Download Generate method Deepfake videos Actors Deepfake-TIMIT low download De...

where_is_horse的博客 1万+

安卓手机老版本微信无法登录?无需root 一招教你如何搞定!旧版本照样登录,微信7.0亲测有效

微信我试了清缓存、用不同的版本、甚至关网登录都不行。于是我研究了一下背后的原理,发现这不仅是个技巧,还是微信设计的一点“疏忽”——**只要有方法,旧版本照样能用**。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

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

因为是有序树,所有 如果 中间节点是 q 和 p 的公共祖先,那么 中节点的数组 一定是在 [p, q]区间的。如图,我们从根节点搜索,第一次遇到 cur节点是数值在[p, q]区间中,即 节点5,此时可以说明 p 和 q 一定分别存在于 节点 5的左子树,和右子树中。在搜索二叉树的公共祖先时,利用回溯从底向上搜索,遇到一个节点的左子树里有p,右子树里有q,那么当前节点就是最近公共祖先。所以当我们从上向下去递归遍历,第一次遇到 cur节点是数值在[p, q]区间中,那么cur就是 p和q的最近公共祖先。

Learner_QUN的博客 598

【Docker】完美解决拉取镜像超时报错:ERROR: Get https://registry-1.docker.io/v2/

因为我们下载的镜像是外网的镜像资源,所以下载的速度会非常的慢,甚至大概率下载时会报错,所以需要我们配置一个国内的服务器镜像地址,国内服务器镜像地址有很多,这里咱们就说一下阿里镜像加速器的配置方法。

liu_chen_yang的博客 12万+

leetcode-235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公共祖先

Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST. According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined b...

别说话写代码的博客 436

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

LeetCode 235 二叉搜索树的最近公共祖先 Lowest Common Ancestor of a Binary Search Tree Python

有关二叉树的做题笔记,Python实现 235. 二叉搜索树的最近公共祖先 Lowest Common Ancestor of a Binary Search Tree LeetCodeCN 第235题链接 第一种方法:用236题.二叉树的最近公共祖先的方法 第二种方法:利用二叉搜索树的左子树都小于父亲节点,右子树都大于父亲节点的特性,可以把第一种方法简化一下 class Solution: ...

fongim的博客 192

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LeetCode235 Lowest Common Ancestor of a Binary Search Tree二叉搜索树的最近公共祖先

1. problem description Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST. According to the definition of LCA on Wikipedia: “The lowest common ancest...

地山谦的博客 193

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Leetcode 235.二叉搜索树的最近公共祖先(Lowest Common Ancestor of a Binary Search Tree)

Leetcode 235.二叉搜索树的最近公共祖先 1 题目描述(Leetcode题目链接)   给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,...

qq_39378221的博客 162

LeetCode算法题235:二叉搜索树的最近公共祖先(Lowest Common Ancestor of a Binary Search Tree)

二叉搜索树的最近公共祖先 LeetCode中文 LeetCode英文 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,...

Making-It 381

LeetCode 235. 二叉搜索树的最近公共祖先(Lowest Common Ancestor of a Binary Search Tree)

LeetCode.jpg 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,n...

墨1024 177

leetcode 235. 二叉搜索树的最近公共祖先(Lowest Common Ancestor of a Binary Search Tree)

目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度...

weixin_30511107的博客 116

LeetCode:235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公共祖先(C语言)

题目描述: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] 示例 1: 输入: root ...

C/C++攻城狮 239

【LeetCode】235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公共祖先(Easy)(JAVA)

【LeetCode】235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公共祖先(Easy)(JAVA) 题目地址: https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/ 题目描述: Given a binary search tree (BST), find the lowest common ancestor (LCA) of two

qq_16927853的博客 153

LeetCode 235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公共祖先(Java)

题目: Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST. According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined betwe...

qq_41878358的博客 190

leetcode 235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公共祖先(简单)

求二叉树的最小共同父节点,可以用递归来求解,同志二叉搜索树的特点是左 < 根 < 右,所以根节点的值一直都是中间值,大于左子树的所有节点值,小于右子树的所有节点值,我们可以做如下判断,如果根节点的值大于 p 和 q 之间的较大值,说明 q 和 q 都在左子树中,那么此时我们就进入根节点的左子节点继续 uxjv,如果根节点小于 p 和 q 之间的较小值,说明 p 和 q 都在右子树中

ln_ydc的专栏 254

(Java)leetcode-235 Lowest Common Ancestor of a Binary Search Tree (二叉搜索树的最近公共祖先)

一道很棒的BST的题目

不思量 247

【Leetcode】235. Lowest Common Ancestor of a Binary Search Tree二叉搜索树的最近公共祖先

Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公共祖先 Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST. According to the definition of LCA o...

weixin_42703504的博客 254
上一篇: LeetCode 169.求众数
下一篇: Miniconda3及pip换源(conda清华源关闭)
君只见独不见
博客等级 码龄12年 99粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值