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

利用二叉搜索树的性质,同时学习了代码随想录,我们可以学到第一个遍历到的值在目标区间内的数为最近公共祖先,若值大于目标区间,就探索左子树;若值小于目标区间,就探索右子树,其余情况直接返回当前结点,最后返回的就是最近公共祖先。

文笔略差,建议参考以下文章:

代码随想录

701.二叉搜索树中的插入操作

最简单的方式就是直接在空的子树添加,没必要分析情况(偷懒!!!)。

450.删除二叉搜索树中的节点

        此题需要分情况讨论

        情况1:没有目标结点,直接返回树即可

        情况2:存在目标结点

                情况2.1:目标结点只有左子树/右子树,直接把结点替换成左子树/右子树

                情况2.2:左子树右子树同时存在,探索右子树(称右子树为当前结点),继续分情况讨论

                        情况2.2.1:不存在左子树,将目标结点换成当前结点

                        情况2.2.2:存在左子树,找到最左结点,由于最左结点可能存在右子树,不能直接替换,此时直接重置原函数,目标结点对应重置原函数的返回值,将目标结点换成最左结点,目标值换成最左结点的值即可(又从情况1开始讨论)。

代码随想录算法训练营第二十二天相关推荐

  1. 代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II。

    代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II. 977.有序数组的平方 209. 长度最小的子数组 59. 螺旋矩阵 II 977.有序数组的 ...

  2. 代码随想录算法训练营第二天 | 力扣977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II

    代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 977.有序数组的平方 题目链接:有序数组的平方 题目描述: 给你一个按 非递减顺序 排序的整 ...

  3. 代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II

    代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II 一. LeetCode977.有序数组的平方 1. 题目链接[LeetCode9 ...

  4. _28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II 、55.跳跃游戏、45.跳跃游戏II

    _28LeetCode代码随想录算法训练营第二十八天-贪心算法 | 122.买卖股票的最佳时机II .55.跳跃游戏.45.跳跃游戏II 题目列表 122.买卖股票的最佳时机II 55.跳跃游戏 45 ...

  5. 代码随想录算法训练营第二天|leetcode 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

    leetcode 977.有序数组的平方 想到昨天写的双指针,十分刻意用了一下,感觉还是比较生疏,还得加强练习和思考,然后发现还需要排序,想到了vector的排序sort(),但是觉得直接用不好,也忘 ...

  6. 代码随想录算法训练营第二天|LeetCode977.有序数组的平方、LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵Ⅱ

    算法训练营打卡第二天,今天的前两道题目重点练习了双指针的用法,最后一道题目将边界条件的限定作为关键点,额外锻炼了逻辑能力. LeetCode977.有序数组的平方 题目链接 https://leetc ...

  7. 代码随想录算法训练营第二天|T977(有序数组的平方)、T209(长度最小的子数组)、T58(螺旋矩阵Ⅱ)

    代码随想录刷题2022.02.02 双指针法 LeetCode题目: T977(有序数组的平方) 解题要点 定义好指针变量,在循环语句中认清充当指针的变量的移动过程 注意:1)一次性定义多个变量时,只 ...

  8. 代码随想录算法训练营第二天| 977有序数组平方、207最小子数组、59螺旋矩阵II。

    977.有序数组的平方 力扣题目链接 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 示例 1: 输入:nums = [-4,-1, ...

  9. 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II

    目录 一.今日心得感悟 1.数组从小到大排序 ①冒泡法--时间复杂度:O(nlogn) ②使用排序函数qsort--时间复杂度:O(nlogn) ③两端->中间(双指针法) --时间复杂度:O( ...

最新文章

  1. 使用keepalived监控tomcat 达到双机热备
  2. esd管 低cj要求_TVS管与ESD保护二极管的区别,联系以及应用
  3. 怎么删除顽固的服务器文件夹,实用技巧:删除Windows XP下顽固文件方法
  4. 【Linux】一步一步学Linux——chgrp命令(113)
  5. 自动化运帷之分布式监控 zabbix 使用
  6. 我的世界服务器物品属性,属性 - Minecraft Wiki,最详细的官方我的世界百科
  7. nyoj--79--导弹拦截(动态规划)
  8. 阿里十年DBA经验产品经理:真的不要再有一起删库跑路事件了
  9. 4chan 爬虫_类似4chan网站
  10. 主题列表,有时间整理成博客
  11. 白话设计模式--结构型模式之 适配器模式(Adapter)
  12. POJ 2195 Going Home(最小费用最大流)题解
  13. opencv 高通滤波和低通滤波_一阶低通滤波原理详解
  14. python3入门代码-Python3入门(十三)——连接数据库
  15. 【综述】详解ERNIE-Baidu进化史及应用场景
  16. Visio画图:用Visio画流程图(初级)
  17. 临时解决Mac OS系统下kernel_task占用大量CPU资源导致系统卡顿一例(不用删plist文件)
  18. 在vm虚拟机上安装esd格式的win7系统文件
  19. Java/计算银行利率
  20. 白苹果了怎么办_iOS 13如何降级?iOS13降级失败怎么办?

热门文章

  1. 47 《清单革命》 -豆瓣评分7.0
  2. 编码规范汇总【持续更新】
  3. 获取frame 标签里#documents里面的内容
  4. java 查看内存_java 内存查看工具
  5. 已解决TypeError: Descriptors cannot not be created directly.
  6. 怎么查看建筑图纸?有什么技巧吗?
  7. Github报错——Failed to connect to github.com port 443: Timed out
  8. 【秋钓皮皮】 奔跑吧,皮皮!(有图了)
  9. 三菱服务器显示d1d2,三菱PLC指令SMOV D2 K2 K2 D1 K3详解
  10. c# ArrayList 和 Hashtable 的使用