★【二叉搜索树插入新的节点】【二叉搜索树】Leetcode 701. 二叉搜索树中的插入操作

【二叉搜索树插入新的节点】【二叉搜索树】Leetcode 701. 二叉搜索树中的插入操作

    • 关键点:
    • 解法 递归法
    • 解法 迭代法

在这里插入图片描述

---------------🎈🎈题目链接🎈🎈-------------------

关键点:

关键点:
二叉搜索树插入新的节点,其实就是把这个节点插入到对应的叶子结点
比如插入5: 5比4小,向右遍历到7 。5比7小,向左遍历为null,就插入在这里。

解法 递归法

时间复杂度O(N)
空间复杂度O(N)

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode insertIntoBST(TreeNode root, int val) {// 递归if(root == null) {TreeNode addnode = new TreeNode(val);return addnode;} if(val < root.val){ // 向左递归遍历root.left = insertIntoBST(root.left,val);} else{ // 向右递归遍历root.right = insertIntoBST(root.right,val);}return root;}
}      

解法 迭代法

时间复杂度O(N)
空间复杂度O(N)

class Solution {public TreeNode insertIntoBST(TreeNode root, int val) {TreeNode addroot = new TreeNode(val);TreeNode newroot = root;if(root == null) return addroot;while(newroot!=null){if(val<newroot.val){  // 如果val<newroot.val,就向左找叶子结点if(newroot.left!=null){  //不为叶子结点,就继续遍历newroot = newroot.left;}else{ //为叶子结点,插入并输出newroot.left = addroot;break;}} else{   // 如果val>newroot.val,就向右找叶子结点if(newroot.right!=null){  //不为叶子结点,就继续遍历newroot = newroot.right;}else{   //为叶子结点,插入并输出newroot.right = addroot;break;}}}return root;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/518797.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java项目:41 springboot大学生入学审核系统的设计与实现010

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本大学生入学审核系统管理员和学生。 管理员功能有个人中心&#xff0c;学生管理&#xff0c;学籍信息管理&#xff0c;入学办理管理等。 学生功能有…

线上问题:新需求放量后频繁发生old gc

线上问题&#xff1a;新需求放量后频繁发生old gc 一、线上问题描述二、处理问题过程1、考虑机器扩容1.1 预发环境复现该问题1.2 预发环境机器扩容1.3 预发环境验证 2、堆内存分析2.1 内存分析2.2 问题修复 三、复盘 一、线上问题描述 周四上线了一个新需求&#xff0c;该需求…

教程篇:Groq API+沉浸式翻译插件 体验最快AI翻译

1、进入https://console.groq.com/keys 申请一个API&#xff08;目前免费&#xff01;抓紧白嫖&#xff09; 2、安装Chrome插件&#xff1a;沉浸式翻译。 https://immersivetranslate.com/ 3、照着抄&#xff08;注意将apikey&#xff0c;换成自己申请的groq的api-key&…

【linuxC语言】系统调用IO文件操作

文章目录 前言一、文件描述符介绍二、系统调用IO API介绍2.1 open函数2.2 close函数2.3 read函数2.4 write函数2.5 lseek函数 三、示例代码总结 前言 在Linux系统中&#xff0c;C语言通过系统调用实现对文件的输入输出&#xff08;I/O&#xff09;操作。系统调用提供了访问操作…

Docker连接Mysql

Docker连接mysql Docker通过云服务器&#xff0c;与本地连接 引言&#xff1a;这个东西我看狂神秒解决&#xff0c;我就试试了&#xff0c;结果G了&#xff0c;花了我两个小时&#xff0c; 希望内容能帮你解决问题 话不多说&#xff0c;直接上内容&#xff1a; navicat连接…

掌握计算机自动化:Pyperclip与CnOCR详细教程(最全使用方法,每行代码都有注释,帮你解决与之有关的所有问题)

文章目录 一、Pyperclip概念二、Pyperclip基础语法三、Pyperclip与文件交互四、Pyperclip生成随机密码五、OCR概念六、CnOCR 基础识别七、CnOCR 不同图片识别 在这个信息化快速发展的时代&#xff0c;高效的信息处理变得尤为关键。Python&#xff0c;作为一门强大的编程语言&am…

[C语言]——分支和循环(4)

目录 一.随机数生成 1.rand 2.srand 3.time 4.设置随机数的范围 猜数字游戏实现 写⼀个猜数字游戏 游戏要求&#xff1a; &#xff08;1&#xff09;电脑自动生成1~100的随机数 &#xff08;2&#xff09;玩家猜数字&#xff0c;猜数字的过程中&#xff0c;根据猜测数据的⼤…

Gartner对未来5年全球信息安全和风险管理市场的预测分析:影响市场的四大因素及对相关产品市场的影响

到 2023 年&#xff0c;信息安全和风险管理市场的最终用户支出将增长至 1850 亿美元&#xff08;现价美元&#xff09;&#xff0c;货币稳定增长率为 13.4%。到2027年&#xff0c;市场规模将达到2870亿美元&#xff0c;按固定汇率计算&#xff0c;2022年至2027年的复合年增长率…

Redis小白入门教程

Redis入门教程 1. Redis入门1.1 Redis简介1.2 Redis服务启动与停止1.2.1 Redis下载1.2.2 服务启动命令1.2.3 客户端连接命令1.2.4 修改Redis配置文件 2. Redis数据类型2.1 五种常用数据类型介绍2.1.1 字符串操作命令2.1.2 哈希操作命令2.1.3 列表操作命令2.1.4 集合操作命令2.1…

如何快速接入 使用Claude 3 opus和Claude 3 sonnet?最简单的Claude 3接入方法

3 月 4 日&#xff0c;被称为 OpenAI 最强竞争对手的大模型公司 Anthropic 宣布推出 Claude3 系列模型&#xff0c;与 Gemini 类似&#xff0c;模型按照大小分为三个&#xff1a;Claude 3 Haiku、Claude 3 Sonnet 和 Claude 3 Opus。Opus 目前在官方发布的测试成绩中全方位超越…

【实战】K8S集群部署nacos并接入Springcloud项目容器化运维

文章目录 前言Nacos集群搭建Spring cloud配置nacos将Springcloud项目部署在k8s写在最后 前言 相信很多同学都开发过以微服务为架构的系统&#xff0c;开发微服务必不可少要使用注册中心&#xff0c;比如nacos\consul等等。当然在自动化运维流行的今天&#xff0c;我们也会将注…

【射频连接器】SMB/SMC 同轴连接器

阻抗为 50 欧姆的 Connex SMB/SMC 超小型同轴连接器适用于 4 GHz &#xff08;SMB&#xff09; 或 10 GHz &#xff08;SMC&#xff09; 的应用。这些连接器通常比 SMA 便宜&#xff0c;主要用于微波电话和其他非国防电信要求的应用。 SMB 连接器具有快速连接/断开卡扣式配接功…