给定二叉搜索树(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]思路:采用经典的插入方法,使整体操作变化最小。直接深拷贝构造新树,然后修改 寻找到合适的叶位置后插入新节点,这样只需要在原树的某个叶节点处延伸一个节点# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def insertIntoBST(self, root: TreeNode, val: int) -> TreeNode:res = copy.deepcopy(root)cur_node = res# 如果二叉搜索树为空树,用val构造二叉树节点作为根节点并返回if cur_node == None:return TreeNode(val)while cur_node:if val > cur_node.val:# 走向右子树if cur_node.right != None:cur_node = cur_node.rightelse:# 右子树为空,则找到右子树插入位置cur_node.right = TreeNode(val)return reselif val < cur_node.val:if cur_node.left != None:cur_node = cur_node.leftelse:cur_node.left = TreeNode(val)return res

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. leetcode701. 二叉搜索树中的插入操作(dfs)

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

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

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

最新文章

  1. Datawhale组队学习 Task01:数组(1天)
  2. 大神开发arXiv全新H5版,一步告别公式排版错误,手机也能轻松看文献
  3. 前端开发js运算符单竖杠“|”的用法和作用及js数据处理
  4. js实现旋转木马轮播图
  5. C#日期格式化(转)
  6. Android中文API(130) —— Html
  7. java关闭当前窗口打开另一窗口
  8. android studio中创建、切换svn分支
  9. CSS3属性animation-play-state控制动画运行或暂停的技巧
  10. Swift UISearchController
  11. Git学习系列(六)解决分支冲突及分支管理策略
  12. 黑客演化史:从20世纪60年代至今
  13. 被问到TCP的可靠传输和提高网络利用率?
  14. 投简历 找工作 App
  15. 国产游戏表 (来自游侠)
  16. 一台计算机两个硬盘怎么设置密码,怎样给硬盘加密码? 两招解决硬盘加密难题...
  17. unity 打安卓包 华为手机图片被压扁
  18. 图像处理里面调色板(Palette)是什么意思?
  19. call(zoom)_如何解决您的Zoom Call问题
  20. 牛客网——综合错题集

热门文章

  1. kaggle House_Price_XGBoost
  2. 阿里云容器服务新增支持Kubernetes编排系统,性能重大提升
  3. uva140 Bandwidth
  4. 基于QT Plugin框架结构
  5. Apache Shiro 使用手册---转载
  6. 命令行 sc delete 的使用(删除服务项)
  7. 一个好的MIS系统应该考虑哪些内容
  8. linux平台IO多路复用 select接口使用例子
  9. linux常用命令及常用快捷键
  10. web项目html引入css文件路径,详解Webpack和Webpack-simple中如何引入CSS文件_旧店_前端开发者...