LeetCode(235)——二叉搜索树的最近公共祖先(JavaScript)
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]
示例1:
输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
输出: 6
解释: 节点 2 和节点 8 的最近公共祖先是 6。
示例2:
输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
输出: 2
解释: 节点 2 和节点 4 的最近公共祖先是 2, 因为根据定义最近公共祖先节点可以为节点本身。
说明:
- 所有节点的值都是唯一的。
- p、q 为不同节点且均存在于给定的二叉搜索树中。
/*** Definition for a binary tree node.* function TreeNode(val) {* this.val = val;* this.left = this.right = null;* }*/
/*** @param {TreeNode} root* @param {TreeNode} p* @param {TreeNode} q* @return {TreeNode}*/
var lowestCommonAncestor = function(root, p, q) {};
个人解法
var lowestCommonAncestor = function(root, p, q) {//p和q都在root的左树或者右树while((p.val < root.val && q.val < root.val) || (root.val < p.val && root.val < q.val)){//p和q在右树,则将root设置为root的右子树if(root.val < p.val && root.val < q.val){root = root.right;}else{//p和q在左树,则将root设置为root的左子树root = root.left;}}return root;
};
LeetCode(235)——二叉搜索树的最近公共祖先(JavaScript)相关推荐
- leetcode 235. 二叉搜索树的最近公共祖先(Java版,树形dp套路)
题目 原题地址:leetcode 235. 二叉搜索树的最近公共祖先 说明: 所有节点的值都是唯一的. p.q 为不同节点且均存在于给定的二叉搜索树中. 题解 关于 树形dp 套路,可以参考我的另一篇 ...
- leetcode —— 235. 二叉搜索树的最近公共祖先
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q 的祖 ...
- Leetcode 235.二叉搜索树的最近公共祖先
Time: 20190907 Type: Easy 题目描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p. ...
- leetcode 235. 二叉搜索树的最近公共祖先
给定一棵二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义: "对于有根树T的两个结点u.v,最近公共祖先表示一个结点x,满足x是u.v的祖先且x的深度尽可能 ...
- leetcode 235. 二叉搜索树的最近公共祖先 思考分析
目录 题目 思考 迭代法 题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 ...
- LeetCode 235. 二叉搜索树的最近公共祖先(递归)
题目描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p ...
- ( “树” 之 BST) 235. 二叉搜索树的最近公共祖先 ——【Leetcode每日一题】
二叉查找树(BST):根节点大于等于左子树所有节点,小于等于右子树所有节点. 二叉查找树中序遍历有序. 235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. ...
- 二叉树part8 | ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点
文章目录 235. 二叉搜索树的最近公共祖先 思路 代码 困难 701.二叉搜索树中的插入操作 思路 代码 450.删除二叉搜索树中的节点 思路 代码 困难 今日收获 235. 二叉搜索树的最近公共祖 ...
- 【C语言刷LeetCode】235. 二叉搜索树的最近公共祖先(E)
[ 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q ...
- 【Leetcode | 235】 235. 二叉搜索树的最近公共祖先
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q 的祖 ...
最新文章
- tensorflow.transpose的理解
- vue-cli3.0结合lib-flexible、px2rem实现移动端适配,完美解决第三方ui库样式变小问题
- 当前工程读取配置文件示例
- linux find显示文件的基本信息,命令find搜索文件,命令stat查看文件的详细信息
- AI技术在空气净化机器人中的高能应用
- 室内温湿度监测系统解决方案
- 一款好看的提示框-------记录一下地址
- 文件夹内的文本行数_重温生物信息重要的文本处理命令(实例命令及解释)
- Jquery学习总结(1)——Jquery常用代码片段汇总
- 《SQL学习指南》读书笔记四——优雅和粗鲁
- JAVA练习题1(初级基本数据类型、运算符)
- 微计算机原理及应用视频,微机原理及应用(上海交通大学)
- 全国火车高铁站及车次数据爬虫(内含100W+数据)
- UART串口协议简介
- 小白刷LeeCode(算法篇):4
- 什么是邓氏编码DUNS NUMBER?
- plsql连接远程数据库时报ORA-01017:用户名、口令无效;登录被拒绝
- js判断一个数独的解是否合法
- MAYA2018常用命令
- 今日金融词汇---存货周转天数
热门文章
- ubuntu python3.7修改默认pip版本_详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本 安装python3后使用pip和pip3的区别...
- 引用类型 —— Array类型
- qvalue: Check that you have valid p-values or use a different range of lambda
- NodeSchool: JavaScript函数式编程
- Android 中文API (38) —— Spinner
- CKeditor的几种配置方式
- java调用外部命令实例
- Asp.NET Demo
- linux下刻录光盘读取不了_Linux下刻录光盘实战
- python opencv天空提取_python利用opencv实现印章的提取