首页 > 其他分享 >代码随想录 第22天 | ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点

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

时间:2024-03-17 10:45:46浏览次数:23  
标签:right return val root 二叉 搜索 树中 left

leetcode:701. 二叉搜索树中的插入操作 - 力扣(LeetCode)

class Solution {

    public TreeNode insertIntoBST(TreeNode root, int val) {
//判断叶子结点,null说明到了,可以赋值。 if(root == null) { TreeNode node = new TreeNode(val); return node; } //判断val大小,决定去哪个节点 if(root.val < val ){ root.right = insertIntoBST(root.right,val); } if(root.val > val){ root.left = insertIntoBST(root.left, val); } return root; } }

 leetcode:450. 删除二叉搜索树中的节点 - 力扣(LeetCode)

class Solution {
  public TreeNode deleteNode(TreeNode root, int key) {
//5个情况,为空,root,left为空,右不为空,右为空,左不为空,找到节点时,用cur指针遍历到左叶子节点,将root指针right转移到left下来。 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; } }

 

标签:right,return,val,root,二叉,搜索,树中,left
From: https://www.cnblogs.com/lengbo/p/18076896

相关文章

  • LeetCode题练习与总结:搜索插入位置
    一、题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(logn)的算法。二、解题思路初始化两个指针,left指向数组的起始位置,right指向数组的结束位置。当left小于等......
  • 面试中可能问到的几种树结构(二叉树,平衡二叉树,红黑树,B树和B+树)
    二叉树的概念二叉树是一种树形结构,其特点是每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。平衡二叉树概念平衡二叉树,是二叉树的一种变形,左子树的深度和右子树的深度不能超过一。红黑树概念红黑树是一种自......
  • win10 运行搜索的历史记录 记不下来
    win10系统,运行窗口中总是不记录使用过的命令,每次都要重新输入一遍很麻烦,我们一起看看,怎么解决这个问题。工具/原料win10方法/步骤 在电脑左下角winows图标,在弹出的快捷菜单中选择“设置” 弹出的windows设置窗口,选择“隐私” ......
  • leedcode-翻转二叉树
    自己写的:classSolution:definvertTree(self,root:Optional[TreeNode])->Optional[TreeNode]:#创建一个新的TreeNode以存储反转后的树newroot=TreeNode()#如果输入的根节点为空,则返回空ifnotroot:......
  • 搜索与回溯算法
    排列#include<cstdio>#include<iostream>#include<algorithm>#include<iomanip>intvis[25],ans[25];intn;usingnamespacestd;voiddfs(intdep){if(dep==n+1){for(inti=1;i<=n;i++)cout<<setw(......
  • 分布式搜索elasticsearch(1)
    1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容例如:在GitHub搜索代码在电商网站搜索商品 在百度搜索答案在打车软件搜索附近的车1.1.2.ELK技......
  • 二叉树的迭代遍历
    二叉树前后序遍历(迭代)#include<bits/stdc++.h>usingnamespacestd;structNode{intdata;Node*left;Node*right;Node(intvalue=0):data(value),left(nullptr),right(nullptr){}};Node*insertEle();voidpreorder(Node*pNode);voidmid......
  • 代码随想录 第21天 | ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ●
    leetcode:530.二叉搜索树的最小绝对差-力扣(LeetCode)思路:判断最小绝对差,肯定用中序遍历,双指针一前一后依次判断。classSolution{intresult=Integer.MAX_VALUE;TreeNodepre=null;publicintgetMinimumDifference(TreeNoderoot){if(root==......
  • 【leetcode】二叉树的前序遍历➕中序遍历➕后序遍历
    大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞......
  • 力扣刷题Days19-637.二叉树的层平均数
    目录1,题目2,代码2.1广度优先遍历2.2深度优先遍历3,学习与总结1,题目给定一个非空二叉树的根节点 root ,以数组的形式返回每一层节点的平均值。2,代码2.1广度优先遍历/***Definitionforabinarytreenode.*functionTreeNode(val,left,right){*......