博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]235. Lowest Common Ancestor of a Binary Search Tree
阅读量:2786 次
发布时间:2019-05-13

本文共 632 字,大约阅读时间需要 2 分钟。

找出BST中的两节点的最低公共祖先

充分利用BST特性,如果p、q均在同一子树上,那么p、q的val与root的val的关系相同,或者root的val等于p或q

递归非递归的区别在于注意处理比较p、q、root的时候,分别是大于零和小于一

public class Solution {    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {        while ((root.val - p.val) * (root.val - q.val) > 0) {            root = root.val > p.val ? root.left : root.right;        }        return root;    }}

public class Solution {    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {        return ((root.val - p.val) * (root.val - q.val) < 1) ? root : lowestCommonAncestor(root.val > p.val ? root.left : root.right, p, q);    }}

转载地址:http://qahld.baihongyu.com/

你可能感兴趣的文章
Effective Python 读书笔记: 第54条: 考虑用模块级别的代码来配置不同的部署环境
查看>>
Python高级编程 读书笔记: 5、 第3章_生成器
查看>>
Python高级编程 读书笔记: 7、 第3章_迭代对象与迭代器
查看>>
Python高级编程 读书笔记: 8、 第4章_魔术方法
查看>>
Python高级编程 读书笔记: 9、 第5章_元类
查看>>
机试算法讲解: 第8题 叠筐
查看>>
JSON过滤去掉handler
查看>>
异常的分类
查看>>
自定义异常
查看>>
方法覆盖和异常
查看>>
MFC消息映射机制
查看>>
手工进行消息映射
查看>>
程序交互的几种方式
查看>>
JDBC的概念
查看>>
Java编程语言和JDBC
查看>>
JDBC编程的步骤
查看>>
例1:通过ODBC建立连接
查看>>
例2:通过SQLSERVER 提供的驱动程序获得连接
查看>>
例3:通过ORACLE提供的驱动程序获得连接
查看>>
例4:通过数据源获得连接
查看>>