码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • My Forty-Second Page - 二叉搜索树的最近公共祖先 - By Nicolas


    这篇page主要是针对leetcode上的235.二叉搜索树的最近公共祖先所写的。小尼先简单的说明一下这道题的意思,给出一个二叉搜索树,找到该树种两个指定节点的最近公共祖先。首先这是一个二叉搜索树,其实这道题给我们已经提供了遍历的顺序,其实我们的思路也很简单。

    小尼接下来讲一下思路,根据题目的条件,条件给出root节点,p节点,q节点,其实也就两种情况,如果q在root左子树中,q在右子树中,那么我们直接返回root就可以了。第二种情况就是p和q都在root节点的一边(也就是都在左子树或者都在右子树),小尼给出第一种解法递归的解法,小尼先拉一下代码:

    class Solution {
        public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
            if(root.val > p.val && root.val > q.val) return lowestCommonAncestor(root.left,p,q);
            if(root.val < p.val && root.val < q.val) return lowestCommonAncestor(root.right,p,q);
            return root;
        }
    }

    上诉的代码就是判断一下这三个节点的val值的大小,然后再做出递归

    小尼接下来拉一下迭代法的代码:

    class Solution {
        public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
            while(true){
                if(root.val > p.val && root.val > q.val){
                    root = root.left;
                }
                else if(root.val < p.val && root.val < q.val){
                    root = root.right;
                }
                else{
                    break;
                }
            }
            return root;
        }
    }

    其实思路和第一种递归的方法是一眼的,只是区别在于这里利用判断是否为true的方法写了一个while循环,这里的根上述的递归起了相同的作用,其实迭代就是一种循环的体现。

  • 相关阅读:
    k8s--基础--12.2--pod--生命周期,状态,重启策略
    什么是nacos/cas/fastdfs
    企业级大数据平台智能运维好帮手——星环科技多模数据平台监控软件Aquila Insight
    家庭理财管理系统设计与实现
    Cadence16.6 > OrCAD Capture CIS >原理图统一改器件属性
    mybatis foeahe 批量插入 删除 修改
    JAVA中小型医院网站计算机毕业设计Mybatis+系统+数据库+调试部署
    Day657.思考题解答⑤ -Java业务开发常见错误
    c# 多线程处理
    Linux 访问进程地址空间函数 access_process_vm
  • 原文地址:https://blog.csdn.net/weixin_51658729/article/details/127659178
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号