迭代法

/*** 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.二叉搜索树中的插入操作相关推荐

  1. LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)

    1. 题目 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入方式,只要树在插入后仍 ...

  2. 70. Leetcode 701. 二叉搜索树中的插入操作 (二叉搜索树-基本操作类)

    给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同.注意,可能 ...

  3. LeetCode 701 二叉搜索树中的插入操作

    题目链接:力扣 插入一个数,就是先找到插入位置,然后进行插入操作. 思路:递归 递归函数声明: TreeNode* insertIntoBST(TreeNode* root, int val); 递归 ...

  4. 代码随想录算法训练营第22天 二叉树 java :235. 二叉树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

    文章目录 LeetCode 236. 二叉树的最近公共祖先 题目讲解 思路 LeetCode 701.二叉搜索树中的插入操作 题目讲解 思路 LeetCode 450.删除二叉搜索树中的节点 题目讲解 ...

  5. 13.<tag-二叉树和BST基础>lt.701. 二叉搜索树中的插入操作0.5

    X.<tag-数组和二分查找>-lt.xx-xxxxxx + lt.xx-xxxxxx lt.701. 二叉搜索树中的插入操作 [案例需求] [思路分析一, 带返回值的递归] [代码实现] ...

  6. 二叉树part8 | ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点

    文章目录 235. 二叉搜索树的最近公共祖先 思路 代码 困难 701.二叉搜索树中的插入操作 思路 代码 450.删除二叉搜索树中的节点 思路 代码 困难 今日收获 235. 二叉搜索树的最近公共祖 ...

  7. Leetcode:701. 二叉搜索树中的插入操作(C++)

    目录 问题描述: 实现代码与解析: 递归: 原理思路: 迭代: 原理思路: 问题描述: 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树. 返回插入后二叉 ...

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

    给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜 ...

  9. 【数据结构与算法】之深入解析“二叉搜索树中的插入操作”的求解思路与算法示例

    一.题目要求 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value,将值插入二叉搜索树,返回插入后二叉搜索树的根节点,输入数据保证,新值和原始二叉搜索树中的任意节点值都不同. 注意 ...

最新文章

  1. 转《两个个很形象的依赖注入的比喻》
  2. controller与servlet区别
  3. 《Ceph源码分析》——第1章,第5节RADOS
  4. fs:[124]对应CurrentThread
  5. linux 列出内存/cpu使用率前10的进程
  6. 【C++教程】03.第一个程序解析
  7. 求二维数组的子数组中的最大值!
  8. How is syntax error in Vue detected
  9. ad中电容用什么封装_用什么来降低噪声?只要几个电容器就可以,简单有效!...
  10. Abp Vnext Pro 的 Vue 实现版本
  11. 没有bug队——加贝——Python 练习实例 31,32
  12. C#中MySQL数据库的备份 还原 初始化
  13. java零碎要点013---java 根据“|”分割字符串需要使用“\\|” 双反斜杠做特殊处理
  14. Spring源码 (事务篇) - 整体流程
  15. Keras基础项目实践
  16. framework层Service的基础知识和常见问题
  17. python脚本编程基础读后感_Python入门经典的读后感10篇
  18. WPF中播放GIF图片
  19. 「首席架构师推荐」一系列很棒的的浏览器端JavaScript库资源
  20. 攻防世界-MISC之如来十三掌

热门文章

  1. 智能视频监控的发展和优势
  2. 汽车式起重机液压系统的设计
  3. 设置TCP connect超时时间的2种方法
  4. VMware虚拟网络编辑器配置
  5. 对话王田苗:亚马逊谷歌入局 服务机器人何时爆发?
  6. 流氓软件之会声会影[彻底卸载]
  7. ubuntu与centos对比
  8. Ant design pro 怎么把日历英文改为中文???国际化
  9. 计算机中的远程协助怎么用,远程协助怎么用,手把手教你如何使用QQ远程协助
  10. Ubuntu远程拷贝SCP问题