剑指offer面试题68 - I. 二叉搜索树的最近公共祖先(递归)(二叉搜索树)
题目描述
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]
思路
详见链接
代码
class TreeNode:def __init__(self,x):self.val = xself.left = Noneself.right = Noneclass Solution:def lowestCommonAncestor(self,root,p,q):if p.val > q.val:min_ , max_ = q.val, p.valelse:min_, max_ = p.val, q.valresult = []def search(root,p,q):if root.val >= p and root.val <= q:reslut.append(root)return if root.val > p and root.val > q:search(root.left,p,q)sele:search(root.right,p,q)search(root,min_,max_)return result[0]
剑指offer面试题68 - I. 二叉搜索树的最近公共祖先(递归)(二叉搜索树)相关推荐
- 剑指offer面试题68 - II. 二叉树的最近公共祖先(递归)
题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q ...
- [剑指offer]面试题第[7]题[JAVA][斐波那契数列][递归]
[问题描述] 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 [解答思路] 1.递归(面试避免) O(n^2) public ...
- 剑指Offer - 面试题6. 从尾到头打印链表(栈,递归,反转链表)
文章目录 1. 题目 2. 解题 2.1 stack解题 2.2 递归 2.3 反转链表 1. 题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head ...
- 剑指offer面试题[37]-两个链表的第一个公共结点
题目描述 输入两个链表,找出它们的第一个公共结点. /* struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), ...
- 剑指offer面试题52. 两个链表的第一个公共节点(双指针法)
题目描述 输入两个链表,找出它们的第一个公共节点. 思路 详见链接 代码 class Solution:def getIntersectionNode(self, headA:ListNode, he ...
- [剑指offer]面试题第[68-2]题[Leetcode][第236题][JAVA][二叉搜索树的最近公共祖先][递归]
[问题描述][中等] 235/68-1 搜索二叉树 236/68-2 二叉树 [解答思路] 递归 时间复杂度:O(N) 空间复杂度:O(N) 情况 1. , 2. , 3. , 4. 的展开写法如下. ...
- 剑指offer——面试题63:二叉搜索树的第k个结点
剑指offer--面试题63:二叉搜索树的第k个结点 Solution1: 20180916重做 /* struct TreeNode {int val;struct TreeNode *left;s ...
- 【重点】剑指offer——面试题27:二叉搜索树与双向链表
剑指offer--面试题27:二叉搜索树与双向链表 Solution1: 这是书上的代码,要理解好最近几道题,对指针的操作比较多... class Solution { public:TreeNode ...
- 剑指offer——面试题24:二叉搜索树的后序遍历序列
剑指offer--面试题24:二叉搜索树的后序遍历序列 Solution1: 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二 ...
最新文章
- 你真的会vue-router吗?
- cvCreateMat函数
- 【计算机视觉】森林火灾检测-1
- svpwm仿真_三相三线逆变_并网仿真建模
- RecursiveTask和RecursiveAction的使用 以及java 8 并行流和顺序流
- java agent技术原理及简单实现
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建16 - 约束最小二乘方滤波、几何均值滤波
- V-SQL的简单使用
- Shell学习笔记---变量赋值与运算(原创)
- 移动互联网“去哪儿”?
- Win32汇编——过程控制(环境变量、命令行参数、可执行文件执行)
- 【Cloud Foundry 应用开发大赛】“相助”专业问答系统
- 都说 NoSQL 比 SQL 强,一文揭密 NoSQL 到底有多强!
- 在线SVG在线编辑器
- 疾病地图制作_助力旅游业复工复产,这份山西中医文旅地图请收好,就在你家门口...
- 直流有刷/无刷电机的介绍
- IT职场: 选择外企利与弊
- 为什么我家狗子放屁特特特别臭?
- 软路由折腾记(一)openwrt
- 把一个数据库中的数据导入到另一个数据库中的方法
热门文章
- 实验一 Linux开发环境的配置 20145213祁玮 20145222黄亚奇
- 论Postgres的“已提交的而且 xmin’比当前事务的XID小的记录对当前事务才是可见的”...
- jquerymobile iscrollview
- 苏炫杰全国计算机等级考试,高二升高三的主题班会
- cv2.show()cv2.waitKey()cv2.VideoCapture()的使用
- java h5服务器推送事件_关于H5+中push推送的服务端代码是怎么写的
- java中switch条件_关于java:你能在Android的switch-case中使用条件语句吗?
- cssd oracle,Oracle RAC /etc/init.d/init.cssd startcheck
- OSCache操作详解+标签使用
- ORACLE数据库 基础练习表EMP\DEPT \SALGRADE脚本