当前位置:网站首页>Leetcode 701. 二叉搜索树中的插入操作
Leetcode 701. 二叉搜索树中的插入操作
2022-08-09 22:05:00 【LuZhouShiLi】
Leetcode 701. 二叉搜索树中的插入操作
题目
给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。
注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。
思路
- 确定递归的参数和返回值:参数就是根节点指针,以及要插入的元素,递归函数有返回值,可以利用返回值完成新加入的节点与其父节点的赋值操作
- 确定终止条件:当前便利的节点是NULL,则该节点就是要插入节点的位置,并把插入的节点返回
- 确定单层递归的逻辑:搜索树是有方向的,可以根据插入元素的数值决定递归的方向
代码
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */
class Solution {
public:
TreeNode* insertIntoBST(TreeNode* root, int val) {
if(root == NULL)
{
// 递归出口
TreeNode* node = new TreeNode(val);// 新建一个节点
return node;
}
if(root->val > val)
{
root->left = insertIntoBST(root->left,val);
}
if(root->val < val)
{
root->right = insertIntoBST(root->right,val);
}
return root;
}
};
边栏推荐
猜你喜欢

【对象——对象及原型链上的属性——对象的操作方法】

电脑系统重装后怎么用打印机扫描出文件?

少儿编程 电子学会图形化编程等级考试Scratch三级真题解析(判断题)2022年6月

力扣 1413. 逐步求和得到正数的最小值

How do task flow executors work?
![[Microservice~Nacos] Nacos service provider and service consumer](/img/b7/47ecd6979ccfeb270261681d6130be.png)
[Microservice~Nacos] Nacos service provider and service consumer

大型分布式存储方案MinIO介绍,看完你就懂了!

【Burning】It's time to show your true strength!Understand the technical highlights of the 2022 Huawei Developer Competition in one article

shell学习

typedef和#define的花里胡哨的用法
随机推荐
Tencent continues to wield the "big knife" to reduce costs and increase efficiency, and free catering benefits for outsourced employees have been cut
Qt message mechanism and events
D. Binary String To Subsequences
2022-8-9 第六组 输入输出流
One Pass 2074: [21CSPJ Popularization Group] Candy
制定量化交易策略的基本步骤有哪些?
shader学习笔记(五)
继承关系下构造方法的访问特点
都在说云原生,那云原生到底是什么?
A1. Prefix Flip (Easy Version)
【GORM】模型关系-HasMany关系
Rust dereference
R语言检验时间序列的平稳性:使用tseries包的adf.test函数实现增强的Dickey-Fuller(ADF)检验、检验时序数据是否具有均值回归特性(平稳性)、不具有均值回归特性的案例
charts.js插件实现的散点图样式
B. Applejack and Storages
APS系统能消除造成生产和运输延迟的瓶颈
Arcgis工具箱无法使用,显示“XML包含错误“的解决方法
Leetcode.25 K个一组翻转链表(模拟/递归)
R语言patchwork包将多个可视化结果组合起来、使用plot_annotation函数以及tag_level参数将组合图用大写字母进行顺序编码、为组合图的标签添加自定义前缀信息
【软考 系统架构设计师】案例分析④ 软件架构风格