代码编织梦想

235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

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

class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        if(root == null) return null;
        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;
    }
}

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

class Solution {
    
    public TreeNode insertIntoBST(TreeNode root, int val) {
        if(root == null) return new TreeNode(val);
        TreeNode newTree = root;
        TreeNode pre = root;
        while(root != null){
            pre = root;
            if(root.val > val){ root = root.left; }
            else if(root.val < val) root = root.right; 
        }
        if(pre.val > val) pre.left = new TreeNode(val);
        if(pre.val < val) pre.right = new TreeNode(val);
        return newTree;
    }
}

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

class Solution {
  public TreeNode deleteNode(TreeNode root, int key) {
    if (root == null) return root;
    if (root.val == key) {
      if (root.left == null) {
        return root.right;
      } else if (root.right == null) {
        return root.left;
      } else {
        TreeNode cur = root.right;
        while (cur.left != null) {
          cur = cur.left;
        }
        cur.left = root.left;
        root = root.right;
        return root;
      }
    }
    if (root.val > key) root.left = deleteNode(root.left, key);
    if (root.val < key) root.right = deleteNode(root.right, key);
    return root;
  }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43561432/article/details/136694468

leetcode day 22 235. 二叉搜索树的最近公共祖先 701. 二叉搜索树中的插入操作 450. 删除二叉搜索树中的节点_zhoujy1999的博客-爱代码爱编程

文章目录 一、leetcode 235. 二叉搜索树的最近公共祖先1.题目链接:2.独立做题问题总结3.解法总结: 二、leetcode 701. 二叉搜索树中的插入操作1.题目链接:2.独立做题问题总结3.解法

day22 | 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点-爱代码爱编程

文章目录 235. 二叉搜索树的最近公共祖先1、代码2、分析 235. 二叉搜索树的最近公共祖先 1、代码 /** * Definition for a binary tree node.

day 22 235. 二叉搜索树的最近公共祖先;450. 删除二叉搜索树中的节点;701.二叉搜索树中的插入操作-爱代码爱编程

这里写目录标题 [235. 二叉搜索树的最近公共祖先](https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/)

代码随想录算法训练营 day22 235.二叉搜索树的最近公共祖先 701.二叉搜索树的插入操作 450.删除二叉搜索树中的节点-爱代码爱编程

题目链接235.二叉搜索树的最近公共祖先 class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeN

代码随想录day22 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点-爱代码爱编程

235. 二叉搜索树的最近公共祖先  二叉树的特性是有序==可以依照数值判断节点在哪里 如果根节点为空,就证明没找到,返回空 缩小范围,找到最近的公共祖先,判断两个指定节点的值是否同时大于/小于子树的值 不能缩小范围,就证明已经找到了最近的 class Solution { public: TreeNode* tran

jar包增量更新分析-爱代码爱编程

jdk自带工具jdeps,可分析class依赖关系(依赖的其它类和jar)。 团队,可以在此工具结果的基础上再详细分析对比出增量文件; 思路如下: jdeps分别分析出旧包和新包的文件依赖关系。并对比出新增的文件列表、删

java数据结构与算法(验证二叉搜索树)-爱代码爱编程

前言 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 实现原理 将验证二叉搜索树计算同样可以转换为相同子问题,所以比较适合用递归。 1.递归的退出条件: 节点返回空为ture,节点的值不在对应数据大小范围内返回false。 2.递归方程: ch

c++ 11-爱代码爱编程

右值引用 右值引用和左值引用的区别 为了理解它们之间的区别,首先需要明白什么是左值(lvalue)和右值(rvalue)。 左值(Lvalue)和右值(Rvalue): 左值(Lvalue):通常指的是一个持久性的对象,它拥有一个明确的地址可以被取得。左值可以出现在赋值操作符的左边。例如,变量、数组的元素、对对象成员的引用等都是左值。右值(Rval

kubernetes 审计日志采集与分析最佳实践-爱代码爱编程

Kubernetes 审计日志概述 Kubernetes 在 1.7 版本中发布了审计(Audit)日志功能,审计(Audit)提供了安全相关的时序操作记录(包括时间、来源、操作结果、发起操作的用户、操作的资源以及请求/响应的详细信息等),通过审计日志,我们能够非常清晰的知道 K8S 集群到底发生了什么事情,包括但不限于: 当前/历史上集群发生了哪些变

day(235. 二叉搜索树的最近公共祖先 ,701.二叉搜索树中的插入操作,)-爱代码爱编程

235.二叉搜索树的最近公共祖先 题目链接:235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode) 解题思路:首先对题目进行分析,这题不是普通的二叉树,而是二叉搜索树,二叉搜索树的特性就是左孩子小于根节点,右孩子大于根节点,所以这道题目相当于已经帮我们确定了遍历的方向,不用考虑遍历顺序了。其次要找最近的公共祖先则就是找到位于q,p这两个节点值

代码随想录day22 | 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点-爱代码爱编程

代码随想录Day22 | 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点 二叉搜索树的最近公共祖先二叉搜索树中的插入操作删除二叉搜索树中的节点普通二叉树的删除

day 22 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点-爱代码爱编程

二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且