当前位置:网站首页>【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;
}
};
边栏推荐
- zabbix部署
- 语音社交app源码——具备哪些开发优势?
- Camunda整体架构和相关概念
- RL78开发环境
- Meishe Q&A Room | Meiying VS Meishe Cloud Editing
- CVPR 2022 | 从人体网格预测骨架,是真正的生理学骨架!
- 再次搞定 Ali 云函数计算 FC
- [代码阅读] CycleGAN: Unpaired Image-To-Image Translation Using Cycle-Consistent Adversarial Networks
- Servlet基础详细版
- Jenkins User Manual (1) - Software Installation
猜你喜欢

深度学习100例 —— 卷积神经网络(CNN)天气识别

Win11文件类型怎么改?Win11修改文件后缀的方法

Camunda整体架构和相关概念

学会使用set和map的基本接口

JUC(1)线程和进程、并发和并行、线程的状态、lock锁、生产者和消费者问题

What is the principle of thermal imaging temperature measurement?Do you know?

【Idea series】idea configuration

Graphic and text hands-on tutorial--ESP32 MQTT docking EMQX local server (VSCODE+ESP-IDF)

Servlet基础详细版

ROI LTV CPA ECPM体系讲解
随机推荐
热成像测温的原理是什么呢?你知道吗?
数字知识库及考学一体化平台
Use pytest hook function to realize automatic test result push enterprise WeChat
无代码平台多项选择入门教程
Camunda整体架构和相关概念
3-5年以上的功能测试如何进阶自动化?
What is the terminal privilege management
利用pytest hook函数实现自动化测试结果推送企业微信
Win11怎么重装显卡驱动程序?Win11显卡驱动怎么卸载重装?
[论文翻译] Unpaired Image-to-Image Translation using Adversarial Consistency Loss
再次搞定 Ali 云函数计算 FC
Business collocations
解决:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING
LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之三
Win11 file types, how to change?Win11 modify the file suffix
There are 12 balls, including 11 weight, only one, don't know is light or heavy. Three times in balance scales, find out the ball.
HCIP 第十八天
vscode插件设置——Golang开发环境配置
【Idea系列】idea配置
二叉树与堆