力扣 701. 二叉搜索树中的插入操作

news/2024/11/16 22:36:34/

题目来源:https://leetcode.cn/problems/insert-into-a-binary-search-tree/description/

 

思路:只要根据二叉搜索树的特性,将新插入节点的值不断地与树节点值进行比较,然后找到新节点所属的叶子节点位置,插入即好,返回根节点。

C++题解1:迭代法。需要用一个指针保存父节点。

class Solution {
public:TreeNode* insertIntoBST(TreeNode* root, int val) {TreeNode* cur = root, *pre = cur;TreeNode* newtree = new TreeNode(val);if(root == nullptr) return newtree;while(cur) {pre = cur;if(cur->val > val) cur = cur->left;else cur = cur->right;}if(pre->val > val) pre->left = newtree;else pre->right = newtree;return root;}
};

C++题解2:递归法,递归函数有返回值。来源代码随想录

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;}
};

C++题解3:递归法,递归函数没有返回值,需要记录上一个节点(父节点)。来源代码随想录

class Solution {
private:TreeNode* parent;void traversal(TreeNode* cur, int val) {if (cur == NULL) {TreeNode* node = new TreeNode(val);if (val > parent->val) parent->right = node;else parent->left = node;return;}parent = cur;if (cur->val > val) traversal(cur->left, val);if (cur->val < val) traversal(cur->right, val);return;}public:TreeNode* insertIntoBST(TreeNode* root, int val) {parent = new TreeNode(0);if (root == NULL) {root = new TreeNode(val);}traversal(root, val);return root;}
};


http://www.ppmy.cn/news/689361.html

相关文章

ai打不开服务器文档,ai文件打不开是什么原因引起的

遇到ai文件打不开的话&#xff0c;我们应该怎么办?ai文件打不开是什么原因造成的?下面是学习啦小编精心为你整理的ai文件打不开的原因&#xff0c;一起来看看。 ai文件打不开的原因 1、内存出错&#xff0c;关掉AI&#xff0c;然后重新打开文件; 2、重启电脑&#xff0c;然后…

更换计算机名后打不开PPT,PPT打不开的原因和解决办法 从检查开始 -电脑资料

PPT打不开的原因和解决办法 遇到PPT打不开别着急&#xff0c;按照本文步骤逐一检查&#xff0c;可能会解决您的问题 常见原因和解决办法 1.提示powerpoint无法打开代表的文件类型版本不同导致PPT打不开&#xff0c;office 2003与office 2007存在兼容性问题&#xff0c;遇到PPT打…

dvwa页面打不开的原因_细看网页打不开的解决办法以及原因细看

现在一些软件就可以办到解决这些问题 例如&#xff1a;安全卫士&#xff0c;什么什么管家(拒绝广告) ①这里是安全卫士第一有功能大全点击更多 图一 ②第二找到断网急救箱 ③第三全面诊断 然后就可以修复了 下面细说打不开的原因就无图了啊&#xff0c;要细细品味 判断一个网站…

上传文件到服务器打不开,关于软件上传到服务器后出现图片打不开的解决方法...

在本地做好的课程网站后上传到服务器出现图片、视频等文件无法打开&#xff0c;出现这种问题是由于在本地直接运行mini iis&#xff0c;上传的图片、视频和其他文件都是以根地址存入在数据库&#xff0c;如果把软件上传至服务器后并且以虚拟目录形式运行就会出现路径问题(新建网…

怎么我的c语言打不开文件,我的文档打不开怎么办【解决方法】

电脑桌 面的“ 我的文档 ”中存放了很多人个的文件夹、文件、图片等好多资料。可是很多用户可能在使用的过程中遇到这样的问题&#xff0c;“我的文档”打不开&#xff0c;出现比如“无法访问CDocuments and SettingsMy Documents函数不正确”或“无法访问CDocuments and Setti…

WebView打不开或者显示异常可能原因

原生对webview内的网页操作空间有限&#xff0c;基本上是设置的问题 可能的疑难杂症问题和解决方案 1.Cannot read property ‘XXX’ of undefined at null 解决方案&#xff1a; webView.getSettings().setDomStorageEnabled(true); HTML5 Storage主要有&#xff1a; se…

redis之主从复制、哨兵、集群

文章目录 一、redis的高可用1.1 redis高可用的概念1.2 Redis的高可用技术 二、redis 主从复制2.1主从复制的原理2.2搭建Redis 主从复制 三、Redis 哨兵模式3.1搭建Redis 哨兵模式3.2启动哨兵模式3.3查看哨兵信息3.4故障模拟 四、Redis 群集模式4.1搭建Redis 群集模式 一、redis…