给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。

百度百科中最近公共祖先的定义为:“对于有根树 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)相关推荐

  1. leetcode 235. 二叉搜索树的最近公共祖先(Java版,树形dp套路)

    题目 原题地址:leetcode 235. 二叉搜索树的最近公共祖先 说明: 所有节点的值都是唯一的. p.q 为不同节点且均存在于给定的二叉搜索树中. 题解 关于 树形dp 套路,可以参考我的另一篇 ...

  2. leetcode —— 235. 二叉搜索树的最近公共祖先

    给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q 的祖 ...

  3. Leetcode 235.二叉搜索树的最近公共祖先

    Time: 20190907 Type: Easy 题目描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p. ...

  4. leetcode 235. 二叉搜索树的最近公共祖先

    给定一棵二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义: "对于有根树T的两个结点u.v,最近公共祖先表示一个结点x,满足x是u.v的祖先且x的深度尽可能 ...

  5. leetcode 235. 二叉搜索树的最近公共祖先 思考分析

    目录 题目 思考 迭代法 题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 ...

  6. LeetCode 235. 二叉搜索树的最近公共祖先(递归)

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

  7. ( “树” 之 BST) 235. 二叉搜索树的最近公共祖先 ——【Leetcode每日一题】

    二叉查找树(BST):根节点大于等于左子树所有节点,小于等于右子树所有节点. 二叉查找树中序遍历有序. 235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. ...

  8. 二叉树part8 | ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点

    文章目录 235. 二叉搜索树的最近公共祖先 思路 代码 困难 701.二叉搜索树中的插入操作 思路 代码 450.删除二叉搜索树中的节点 思路 代码 困难 今日收获 235. 二叉搜索树的最近公共祖 ...

  9. 【C语言刷LeetCode】235. 二叉搜索树的最近公共祖先(E)

    [ 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q ...

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

    给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q 的祖 ...

最新文章

  1. tensorflow.transpose的理解
  2. vue-cli3.0结合lib-flexible、px2rem实现移动端适配,完美解决第三方ui库样式变小问题
  3. 当前工程读取配置文件示例
  4. linux find显示文件的基本信息,命令find搜索文件,命令stat查看文件的详细信息
  5. AI技术在空气净化机器人中的高能应用
  6. 室内温湿度监测系统解决方案
  7. 一款好看的提示框-------记录一下地址
  8. 文件夹内的文本行数_重温生物信息重要的文本处理命令(实例命令及解释)
  9. Jquery学习总结(1)——Jquery常用代码片段汇总
  10. 《SQL学习指南》读书笔记四——优雅和粗鲁
  11. JAVA练习题1(初级基本数据类型、运算符)
  12. 微计算机原理及应用视频,微机原理及应用(上海交通大学)
  13. 全国火车高铁站及车次数据爬虫(内含100W+数据)
  14. UART串口协议简介
  15. 小白刷LeeCode(算法篇):4
  16. 什么是邓氏编码DUNS NUMBER?
  17. plsql连接远程数据库时报ORA-01017:用户名、口令无效;登录被拒绝
  18. js判断一个数独的解是否合法
  19. MAYA2018常用命令
  20. 今日金融词汇---存货周转天数

热门文章

  1. ubuntu python3.7修改默认pip版本_详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本 安装python3后使用pip和pip3的区别...
  2. 引用类型 —— Array类型
  3. qvalue: Check that you have valid p-values or use a different range of lambda
  4. NodeSchool: JavaScript函数式编程
  5. Android 中文API (38) —— Spinner
  6. CKeditor的几种配置方式
  7. java调用外部命令实例
  8. Asp.NET Demo
  9. linux下刻录光盘读取不了_Linux下刻录光盘实战
  10. python opencv天空提取_python利用opencv实现印章的提取