题目描述:

利用二叉搜索树的特点,如果p、q的值都小于root,说明p q 肯定在root的左子树中;如果p q都大于root,说明肯定在root的右子树中,如果一个在左一个在右 则说明此时的root记为对应的最近公共祖先

方法一:递归

class Solution:
def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
if max(p.val,q.val) < root.val:
return self.lowestCommonAncestor(root.left,p,q)
if min(p.val,q.val) > root.val:
return self.lowestCommonAncestor(root.right,p,q)
return root

方法二:迭代

class Solution:
def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
while root:
if max(p.val,q.val) < root.val:
root = root.left
elif min(p.val,q.val) > root.val:
root = root.right
else:
return root

最新文章

  1. css声明应用优先级
  2. 如何利用cookie来保存用户登录账号
  3. 数据仓库原理&lt;1&gt;:数据库与数据仓库
  4. ACM入门记
  5. 如何用C表示排列组合?
  6. easy ui 表单元素input控件后面加说明(红色)
  7. Android 电子邮件发送成功与失败的提示
  8. SQL Prompt5 破解版+使用说明 [转]
  9. 通过 Visual Studio 的“代码度量值”来改进代码质量
  10. 小项目:聊天室 (jQuery,PHP,MySQL)
  11. iOS开发出错whose view is not in the window hierarchy!的解决
  12. 安装ubuntu18.10并连接xshell6
  13. 监控服务器配置(四)-----OracleDb_exporter安装配置
  14. POI导出Execl文件,使JAVA虚拟机OOM
  15. 最强Hibernate搭建文章(转)
  16. C# event关键字
  17. flask框架----数据库连接池
  18. NSIS笔记
  19. shell 命令 netstat 查看端口占用
  20. STL——迭代器与traits编程技法

热门文章

  1. teb教程4
  2. Jmeter服务器性能压测-用户登录实例CSV方式
  3. 谷歌浏览器srcoll时,控制台一直报错
  4. Office应用程序对照表
  5. CSP-S考前各种idea题解乱堆
  6. A*启发式搜索基础
  7. JVM内存分为哪几部分?各个部分的作用是什么?
  8. delphi 数据处理
  9. Python内置模块-time &amp;&amp; datatime
  10. yield和生成器, 通过斐波那契数列学习(2.5)