当前位置: 首页 > article >正文

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

给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。

注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

题解

如何找到二叉搜索树的插入位置?
插入后要使得插入后的二叉树的中序序列为递增,可以不考虑题目中提示所说的改变树的结构的插入方式,只要按照二叉搜索树的规则去遍历,遇到空节点就插入节点就可以了。
–>小于根则往左子树找,大于根则往右子树找

1.终止条件:遇到空节点,此时可以插入,并将插入节点的值返回。return new TreeNode(val)
2.本层操作:往左走或往右走,根据插入元素的数值,决定递归方向,本层用root->left或者root->right将下一层节点接住
3.递归没有终止,本层需返回root节点给上一层

class Solution {
    public TreeNode insertIntoBST(TreeNode root, int val) { 
        //终止条件
        if(root==null) return new TreeNode(val);
        //向右子树递归,并且用root.right接住递归返回值
        if(root.val>val) root.left=insertIntoBST(root.left,val);
        else root.right=insertIntoBST(root.right,val);
        //归没有终止,本层需返回root节点给上一层
        return root;
    }
}

http://www.kler.cn/news/304386.html

相关文章:

  • 安卓开发板_联发科MTK开发板使用ADB开发
  • Excel--不规则隔行填充底纹颜色
  • 【动手学深度学习】08 线性回归 + 基础优化算法(个人向笔记)
  • SpringCloud神领物流学习笔记:项目概述(一)
  • 计算机网络 ---如何寻找目标计算机
  • C语言——双指针法求有序数组的平方
  • Linux:五种IO模型
  • 学习笔记 韩顺平 零基础30天学会Java(2024.9.13)
  • 智能听诊器:打造宠物个性化健康生活
  • 数学基础 -- 概率统计之高斯分布
  • 后端开发刷题 | 把数字翻译成字符串(动态规划)
  • Linux sh命令
  • 【Linux】深刻理解操作系统的管理
  • 若依plus- cloud RuoYiGatewayApplication :8080/(ruoyi-gateway)启动不了,报错!
  • 鸿蒙 - 判断手机号、身份证(正则表达式)
  • CMake构建学习笔记16-使用VS进行CMake项目的开发
  • 计算机组成原理(第二次笔记)
  • PHP高效协同无缝对接一站式生产管理系统小程序源码
  • 深入理解指针(二)
  • vue3里根据配置信息显示el-button的问题
  • iOS中的链表 - 单向链表
  • 多核DSP(6000系列)设计与调试技巧培训
  • 【案例70】invalid secrity token(null)
  • 【SpringBoot】调度和执行定时任务--DelayQueue (附demo)
  • STM32——看门狗通俗解析
  • 【Linux网络】详解TCP协议(1)
  • C++特性--动态内存和智能指针
  • 工作睡觉监测识别摄像机
  • fly专享
  • 【三】TDengine 3.3.2 生产级别集群搭建