当前位置: 首页 > news >正文

【代码随想录day21】二叉搜索树的最近公共祖先

题目 

 

 思路

解题的关键是知道自顶向低递归遍历,第一次遇到root在p和q的区间中时,则root就是p和q的最近公共祖先节点。 

递归法 

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution:def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':if not root:return if root.val>p.val and root.val>q.val:left = self.lowestCommonAncestor(root.left, p, q)if left:return leftif root.val<p.val and root.val<q.val:right = self.lowestCommonAncestor(root.right, p, q)if right:return rightreturn root

迭代法

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution:def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':while root:if root.val>p.val and root.val>q.val:root = root.leftelif root.val<p.val and root.val<q.val:root = root.rightelse:return root

 

http://www.lryc.cn/news/97203.html

相关文章:

  • ssm文章发布管理系统java小说作品发表jsp源代码mysql
  • AXI协议之AXILite开发设计(二)
  • Qgis二次开发-QgsMapTool地图交互工具详解
  • MySQL基础(四)数据库备份
  • 子类化QThread来实现多线程,moveToThread函数的作用
  • 经典面试题(力扣,接雨水)
  • 2023年深圳杯数学建模C题无人机协同避障航迹规划
  • PostgreSQL--实现数据库备份恢复详细教学
  • JDK工具之jstack说明
  • 34 | 牛顿迭代法
  • ChatGPT如何帮助学生学习
  • easyexcel导出excel-50行代码搞定大量数据导出
  • OpenAI宣布安卓版ChatGPT正式上线;一站式 LLM底层技术原理入门指南
  • Rust vs Go:常用语法对比(二)
  • 对于Vue3的一些思考
  • Bean的生命周期 - spring
  • 入门Linux基本指令(2)
  • 【C++】【自用】选择题 刷题总结
  • SkyWalking链路追踪-Collector(收集器)
  • typescript自动编译文件实时更新
  • qt6.5 download for kali/ubuntu ,windows (以及配置选项选择)
  • 【JS 原型链】
  • harmonyOS 开发之UI开发(ArkTS声明式开发范式)概述
  • 【人工智能】神经网络、M-P_神经元模型、激活函数、神经网络结构、学习网络参数、代价定义、总代价
  • 小程序新渲染引擎 Skyline 发布正式版
  • 网络安全作业1
  • 【NLP】视觉变压器与卷积神经网络
  • 【redis】通过配置文件简述redis的rdb和aof
  • Cypress 上传 pdf 变空白页问题
  • 【ArcGIS Pro二次开发】(52):布局导出图片(批量)