2022-5-11 Leetcode 701.二叉搜索树中的插入操作
迭代法
/*** 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){TreeNode* node = new TreeNode(val);return node;}TreeNode* p = root;TreeNode* parent;bool isleft = false;while (p){isleft = false;parent = p;if (p->val > val){isleft = true;p = p->left;}else if(p->val < val){p = p->right;}}if (parent && isleft){parent->left = new TreeNode(val);}else if (parent && !isleft){parent->right = new TreeNode(val);}return root;}
};
递归法
/*** 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){root = new TreeNode(val);return root;}if (root->val > val){root->left = insertIntoBST(root->left, val);}else if(root->val < val){root->right = insertIntoBST(root->right, val);}return root;}
};
2022-5-11 Leetcode 701.二叉搜索树中的插入操作相关推荐
- LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)
1. 题目 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入方式,只要树在插入后仍 ...
- 70. Leetcode 701. 二叉搜索树中的插入操作 (二叉搜索树-基本操作类)
给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同.注意,可能 ...
- LeetCode 701 二叉搜索树中的插入操作
题目链接:力扣 插入一个数,就是先找到插入位置,然后进行插入操作. 思路:递归 递归函数声明: TreeNode* insertIntoBST(TreeNode* root, int val); 递归 ...
- 代码随想录算法训练营第22天 二叉树 java :235. 二叉树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点
文章目录 LeetCode 236. 二叉树的最近公共祖先 题目讲解 思路 LeetCode 701.二叉搜索树中的插入操作 题目讲解 思路 LeetCode 450.删除二叉搜索树中的节点 题目讲解 ...
- 13.<tag-二叉树和BST基础>lt.701. 二叉搜索树中的插入操作0.5
X.<tag-数组和二分查找>-lt.xx-xxxxxx + lt.xx-xxxxxx lt.701. 二叉搜索树中的插入操作 [案例需求] [思路分析一, 带返回值的递归] [代码实现] ...
- 二叉树part8 | ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点
文章目录 235. 二叉搜索树的最近公共祖先 思路 代码 困难 701.二叉搜索树中的插入操作 思路 代码 450.删除二叉搜索树中的节点 思路 代码 困难 今日收获 235. 二叉搜索树的最近公共祖 ...
- Leetcode:701. 二叉搜索树中的插入操作(C++)
目录 问题描述: 实现代码与解析: 递归: 原理思路: 迭代: 原理思路: 问题描述: 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树. 返回插入后二叉 ...
- 701. 二叉搜索树中的插入操作
给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜 ...
- 【数据结构与算法】之深入解析“二叉搜索树中的插入操作”的求解思路与算法示例
一.题目要求 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value,将值插入二叉搜索树,返回插入后二叉搜索树的根节点,输入数据保证,新值和原始二叉搜索树中的任意节点值都不同. 注意 ...
最新文章
- 转《两个个很形象的依赖注入的比喻》
- controller与servlet区别
- 《Ceph源码分析》——第1章,第5节RADOS
- fs:[124]对应CurrentThread
- linux 列出内存/cpu使用率前10的进程
- 【C++教程】03.第一个程序解析
- 求二维数组的子数组中的最大值!
- How is syntax error in Vue detected
- ad中电容用什么封装_用什么来降低噪声?只要几个电容器就可以,简单有效!...
- Abp Vnext Pro 的 Vue 实现版本
- 没有bug队——加贝——Python 练习实例 31,32
- C#中MySQL数据库的备份 还原 初始化
- java零碎要点013---java 根据“|”分割字符串需要使用“\\|” 双反斜杠做特殊处理
- Spring源码 (事务篇) - 整体流程
- Keras基础项目实践
- framework层Service的基础知识和常见问题
- python脚本编程基础读后感_Python入门经典的读后感10篇
- WPF中播放GIF图片
- 「首席架构师推荐」一系列很棒的的浏览器端JavaScript库资源
- 攻防世界-MISC之如来十三掌