二叉排序树的插入 java_leetcode刷题笔记-701. 二叉搜索树中的插入操作(java实现)...
题目描述
给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。
注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。
示例 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.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public TreeNode insertIntoBST(TreeNode root, int val) {
if(root == null) {
return new TreeNode(val);
}
if(root.val > val) {
root.left = insertIntoBST(root.left, val);
} else {
root.right = insertIntoBST(root.right, val);
}
return root;
}
}
二叉排序树的插入 java_leetcode刷题笔记-701. 二叉搜索树中的插入操作(java实现)...相关推荐
- 13.<tag-二叉树和BST基础>lt.701. 二叉搜索树中的插入操作0.5
X.<tag-数组和二分查找>-lt.xx-xxxxxx + lt.xx-xxxxxx lt.701. 二叉搜索树中的插入操作 [案例需求] [思路分析一, 带返回值的递归] [代码实现] ...
- 代码随想录算法训练营第22天 二叉树 java :235. 二叉树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点
文章目录 LeetCode 236. 二叉树的最近公共祖先 题目讲解 思路 LeetCode 701.二叉搜索树中的插入操作 题目讲解 思路 LeetCode 450.删除二叉搜索树中的节点 题目讲解 ...
- 二叉树part8 | ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点
文章目录 235. 二叉搜索树的最近公共祖先 思路 代码 困难 701.二叉搜索树中的插入操作 思路 代码 450.删除二叉搜索树中的节点 思路 代码 困难 今日收获 235. 二叉搜索树的最近公共祖 ...
- 70. Leetcode 701. 二叉搜索树中的插入操作 (二叉搜索树-基本操作类)
给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同.注意,可能 ...
- 701. 二叉搜索树中的插入操作
给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜 ...
- LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)
1. 题目 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入方式,只要树在插入后仍 ...
- Leetcode:701. 二叉搜索树中的插入操作(C++)
目录 问题描述: 实现代码与解析: 递归: 原理思路: 迭代: 原理思路: 问题描述: 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树. 返回插入后二叉 ...
- LeetCode 701 二叉搜索树中的插入操作
题目链接:力扣 插入一个数,就是先找到插入位置,然后进行插入操作. 思路:递归 递归函数声明: TreeNode* insertIntoBST(TreeNode* root, int val); 递归 ...
- 701. 二叉搜索树中的插入操
题目 截图自官方 代码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode lef ...
- 2022-5-11 Leetcode 701.二叉搜索树中的插入操作
迭代法 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode ...
最新文章
- [WPF]自定义鼠标指针
- Mycat常见问题与解决方案
- [CF]Codeforces Round #528 Div.2
- java 如何循环执行一个对象_Java基础:如何定义好一个方法和进行方法重载
- 2019年2月数据库流行度排行: PostgreSQL攀至历史新高
- 微信小程序之----问题
- BZOJ1853: [Scoi2010]幸运数字(容斥原理)
- 无法支持python程序的编辑运行和调试_python程序的调试方法
- unity 如何获取到屏幕中间_请问如何获得场景的中心点在屏幕上的坐标?
- 与Xcode相比Adobe AIR开发iOS的优势和局限
- linux三剑客之sed命令,linux三剑客之sed命令
- window核心编程 22.3 DIPS.exe的踩坑逻辑梳理
- HP UNIX下载工具的一个好地方
- linux文件名乱码删除,linux下删除文件名乱码文件
- matlab 时间轴 绘图,时间轴制作超详细教程,助你轻松画出专业时间轴!
- Axios 二次封装(超详细)
- java 数字转换字母大写_大写字母或小写字母转换为数字
- 百度在首页输出console发布招聘信息
- WXPY自动转发群消息
- 力扣刷题 DAY_68 回溯