首页 > 其他分享 >代码随想录 day22 二叉搜索树的最近公共祖先 二叉搜索树中的插入操作 删除二叉搜索树中的节点

代码随想录 day22 二叉搜索树的最近公共祖先 二叉搜索树中的插入操作 删除二叉搜索树中的节点

时间:2024-01-17 21:13:20浏览次数:20  
标签:遍历 二叉 插入 搜索 树中 节点

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

这题跟之前的不一样 可以利用二叉搜索树有序的特点
有序就说明可以根据节点的值与p q的关系判断应该往左边搜索还是右边搜索

这题显然是不需要遍历整棵树的
所以是写的遍历边的写法
遍历树需要用变量接受

二叉搜索树中的插入操作

一开始还以为要遍历整棵树
其实不需要
因为有序 所以我们递归的时候可以决定递归的方向
根据值大小范围决定往左还是往右递归
这里写法是直接在树上找空节点位置插入 不改变树结构

删除二叉搜索树中的节点

仔细点 分辨清楚这五种情况就不难了

注意下有返回值要拿变量接收一下


标签:遍历,二叉,插入,搜索,树中,节点
From: https://www.cnblogs.com/mingtiao/p/17971184

相关文章

  • 二叉树结构与递归实现前中后序遍历
    1.二叉树结构2.二叉树节点遍历顺序前序:每颗子树以中—》左—》右遍历ABDEHCFG 中序:每颗子树以左 —》中—》右遍历DBEHAFCG 后序:每颗子树以左 —》右—》中遍历DHEBFGCA 代码实现:publicclassBinaryTree{stat......
  • 二叉树的公共祖先
    最开始做的时候,就先想到的是找父节点的那个函数,于是先把目标节点的所以祖先节点存起来,然后一个一个进行比对,当然这样耗时很大。点击查看代码classSolution{public:vector<TreeNode*>vp,vq;TreeNode*findfa(TreeNode*root,TreeNode*k){if(!root){returnNULL;}if(ro......
  • 验证二叉搜索树
    首先要明白二叉搜索树如果按照中序遍历存放在数组就是呈现递增的形式。所以该题的框架一定是基于中序遍历的形式。但我最开始写的时候忽略了一个点,if(root->left->val>=root->val){returnfalse;}if(root->right->val<=root->val){returnfalse;}这样每个二叉树单独看都可以......
  • 代码随想录 day21 二叉搜索树的最小绝对差 二叉搜索树中的众数 二叉树的最近公共祖先
    二叉搜索树的最小绝对差二叉搜索树就是有序数组那么转换一下就很简单了也可以直接在遍历二叉搜索树的时候进行比较需要一个指针记录前一个节点二叉搜索树中的众数既可以把这题的二叉搜索树当成一般树来做这样就是层序遍历树然后用map记录频率再取频率最高的值这里用......
  • 搜索学习笔记+杂题 (进阶一 dfs/bfs的进阶)
    前言:没啥好说的了。所以只能来写博客了。搜索杂题:相关题单:戳我二、进阶dfs/bfs1、dfs进阶——折半搜索(meetinthemiddle)由于深搜的时间复杂度在每种状态有两个分支的情况下是\(O(2^n)\)。所以一般暴力深搜的数据范围就在\(20-25\)之间。而对于有一大类的题,它的搜索思......
  • android studio 搜索不到GitHub Copilot
    如何在AndroidStudio中搜索到GitHubCopilot1.概述在本文中,我将向你介绍如何在AndroidStudio中搜索到GitHubCopilot。GitHubCopilot是一个基于机器学习的代码助手,它可以根据上下文为你提供代码建议和完成。为了使用GitHubCopilot,你需要在AndroidStudio中安装并配置它。下......
  • 关于二叉树递归代码的粗鄙理解
    整体来看,二叉树的递归代码,可以分为终止条件,单层递归逻辑。单层递归逻辑就是所谓的根左右那三种,选哪一种也是有讲究的,如果不需要对根节点进行处理,那三种都可以。如果题目侧重与由子节点推到父节点,就采用后序遍历。如果题目侧重与由父节点推到子节点,就采用前序遍历。终止条件怎......
  • python 搜索旋转排序数组 多种解法
    二分查找:旋转排序数组中仍然可以应用二分查找算法。首先,我们找到数组中最小的元素的索引,也就是旋转点的位置。然后,我们根据目标值与旋转点的大小关系,在旋转点的左侧或右侧进行常规的二分查找。defsearch(nums,target):#寻找旋转点left,right=0,len(nums)-1......
  • 代码随想录 day20 最大二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
    最大二叉树前序遍历递归效率不高因为每次都要新开数组给左右子树可以在同一个数组上做这个事情合并二叉树一开始不知道怎么同时遍历两棵树其实只要同时传入两棵树的节点就可以了这里判断两棵树谁空就另外一个作为构造树全为空那就会构造空节点二叉搜索树中的搜索......
  • GitHub 高级搜索功能
    了解开源项目对于开发者的价值开源项目可以给开发者带来以下帮助:1、加速开发过程:开源项目提供了大量的可复用代码、库、框架和工具,可以帮助开发者快速构建应用程序和解决技术问题。这种可重用性可以显著加速项目的开发周期。2、降低开发成本:通过使用开源项目,你可以减少开发......