当前位置:网站首页>【LeetCode】701.二叉搜索树中的插入操作
【LeetCode】701.二叉搜索树中的插入操作
2022-08-04 10:50:00 【酥酥~】
题目
给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。
注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。
示例 1:
输入:root = [4,2,7,1,3], val = 5
输出:[4,2,7,1,3,5]
解释:另一个满足题目要求可以通过的树是:
示例 2:
输入:root = [40,20,60,10,30,50,70], val = 25
输出:[40,20,60,10,30,50,70,null,null,25]
示例 3:
输入:root = [4,2,7,1,3,null,null,null,null,null,null], val = 5
输出:[4,2,7,1,3,5]
提示:
树中的节点数将在 [0, 104]的范围内。
-108 <= Node.val <= 108
所有值 Node.val 是 独一无二 的。
-108 <= val <= 108
保证 val 在原始BST中不存在。
题解
/** * 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 == nullptr)
return new TreeNode(val);
TreeNode* node = root;
while(node)
{
if(val < node->val)
{
if(node->left)
node = node->left;
else
{
node->left = new TreeNode(val);
break;
}
}
else
{
if(node->right)
node = node->right;
else
{
node->right = new TreeNode(val);
break;
}
}
}
return root;
}
};
递归
class Solution {
public:
TreeNode* insertIntoBST(TreeNode* root, int val) {
if(root == nullptr)
return new TreeNode(val);
if(val < root->val)
root->left = insertIntoBST(root->left,val);
else
root->right = insertIntoBST(root->right,val);
return root;
}
};
边栏推荐
- Graphical Hands-on Tutorial--ESP32 One-Key Network Configuration (Smartconfig, Airkiss)
- 遍历Map的四种方法
- 【Idea series】idea configuration
- HCIP 第十七天
- 第二批养老理财试点产品发行 一小时销售20亿元
- STM32入门开发 制作红外线遥控器(智能居家-万能遥控器)
- Learn to use the basic interface of set and map
- ThreadLocal详细分析
- 图文手把手教程--ESP32 一键配网(Smartconfig、Airkiss)
- Google Earth Engine APP——实现ui.Select() 的设定和条件判断
猜你喜欢

二叉树与堆

粤黔协作,山海同心!578种贵州特色农产品走进粤港澳大湾区

MATLAB程序设计与应用 3.2 矩阵变换

ThreadLocal详细分析

北京大学,新迎3位副校长!其中一人为中科院院士!

Use pytest hook function to realize automatic test result push enterprise WeChat

如何直击固定资产管理的难题?

JUC (1) threads and processes, concurrency and parallelism, thread state, locks, producers and consumers

强烈推荐一款优秀且通用的后台管理系统

Graphical Hands-on Tutorial--ESP32 OTA Over-the-Air Upgrade (VSCODE+IDF)
随机推荐
解析treeSet集合进行自定义类的排序
MATLAB程序设计与应用 3.1 特殊矩阵
华为云安全云脑,让企业云化运营更放心
黑马瑞吉外卖之员工账号的禁用和启用以及编辑修改
Learn to use the basic interface of set and map
iMeta | 德国国家肿瘤中心顾祖光发表复杂热图(ComplexHeatmap)可视化方法
开源一夏|ArkUI如何自定义弹窗(eTS)
如何直击固定资产管理的难题?
怎么禁止textarea拉伸
MySQL 45 讲 | 10 MySQL为什么有时候会选错索引?
[Hongke case] Assembling furniture based on 3D camera
解决:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING
移动端 开源低代码工具 beeware 和 kivy
MySQL: Integrity Constraints and Table Design Principles
datax oracle to oracle离线json文件
转转测试环境的标签域名实践
Graphical Hands-on Tutorial--ESP32 One-Key Network Configuration (Smartconfig, Airkiss)
Jenkins User Manual (1) - Software Installation
audio_policy_configuration.xml配置文件详解
Heap Sort