70. Leetcode 701. 二叉搜索树中的插入操作 (二叉搜索树-基本操作类)
给定二叉搜索树(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. 二叉搜索树中的插入操作 (二叉搜索树-基本操作类)相关推荐
- 代码随想录算法训练营第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. 二叉搜索树中的插入操作(二叉查找树/插入)
1. 题目 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入方式,只要树在插入后仍 ...
- Leetcode:701. 二叉搜索树中的插入操作(C++)
目录 问题描述: 实现代码与解析: 递归: 原理思路: 迭代: 原理思路: 问题描述: 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树. 返回插入后二叉 ...
- 701. 二叉搜索树中的插入操作
给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜 ...
- 【数据结构与算法】之深入解析“二叉搜索树中的插入操作”的求解思路与算法示例
一.题目要求 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value,将值插入二叉搜索树,返回插入后二叉搜索树的根节点,输入数据保证,新值和原始二叉搜索树中的任意节点值都不同. 注意 ...
- leetcode701. 二叉搜索树中的插入操作(dfs)
给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同.注意,可能存在多种有效的插入方式,只要树 ...
- LeetCode 701 二叉搜索树中的插入操作
题目链接:力扣 插入一个数,就是先找到插入位置,然后进行插入操作. 思路:递归 递归函数声明: TreeNode* insertIntoBST(TreeNode* root, int val); 递归 ...
最新文章
- Datawhale组队学习 Task01:数组(1天)
- 大神开发arXiv全新H5版,一步告别公式排版错误,手机也能轻松看文献
- 前端开发js运算符单竖杠“|”的用法和作用及js数据处理
- js实现旋转木马轮播图
- C#日期格式化(转)
- Android中文API(130) —— Html
- java关闭当前窗口打开另一窗口
- android studio中创建、切换svn分支
- CSS3属性animation-play-state控制动画运行或暂停的技巧
- Swift UISearchController
- Git学习系列(六)解决分支冲突及分支管理策略
- 黑客演化史:从20世纪60年代至今
- 被问到TCP的可靠传输和提高网络利用率?
- 投简历 找工作 App
- 国产游戏表 (来自游侠)
- 一台计算机两个硬盘怎么设置密码,怎样给硬盘加密码? 两招解决硬盘加密难题...
- unity 打安卓包 华为手机图片被压扁
- 图像处理里面调色板(Palette)是什么意思?
- call(zoom)_如何解决您的Zoom Call问题
- 牛客网——综合错题集
热门文章
- kaggle House_Price_XGBoost
- 阿里云容器服务新增支持Kubernetes编排系统,性能重大提升
- uva140 Bandwidth
- 基于QT Plugin框架结构
- Apache Shiro 使用手册---转载
- 命令行 sc delete 的使用(删除服务项)
- 一个好的MIS系统应该考虑哪些内容
- linux平台IO多路复用 select接口使用例子
- linux常用命令及常用快捷键
- web项目html引入css文件路径,详解Webpack和Webpack-simple中如何引入CSS文件_旧店_前端开发者...