题目描述

给定二叉搜索树(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实现)...相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    题目 截图自官方 代码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode lef ...

  10. 2022-5-11 Leetcode 701.二叉搜索树中的插入操作

    迭代法 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode ...

最新文章

  1. [WPF]自定义鼠标指针
  2. Mycat常见问题与解决方案
  3. [CF]Codeforces Round #528 Div.2
  4. java 如何循环执行一个对象_Java基础:如何定义好一个方法和进行方法重载
  5. 2019年2月数据库流行度排行: PostgreSQL攀至历史新高
  6. 微信小程序之----问题
  7. BZOJ1853: [Scoi2010]幸运数字(容斥原理)
  8. 无法支持python程序的编辑运行和调试_python程序的调试方法
  9. unity 如何获取到屏幕中间_请问如何获得场景的中心点在屏幕上的坐标?
  10. 与Xcode相比Adobe AIR开发iOS的优势和局限
  11. linux三剑客之sed命令,linux三剑客之sed命令
  12. window核心编程 22.3 DIPS.exe的踩坑逻辑梳理
  13. HP UNIX下载工具的一个好地方
  14. linux文件名乱码删除,linux下删除文件名乱码文件
  15. matlab 时间轴 绘图,时间轴制作超详细教程,助你轻松画出专业时间轴!
  16. Axios 二次封装(超详细)
  17. java 数字转换字母大写_大写字母或小写字母转换为数字
  18. 百度在首页输出console发布招聘信息
  19. WXPY自动转发群消息
  20. 力扣刷题 DAY_68 回溯

热门文章

  1. 三层交换机SVI实现不同VLAN通信.
  2. (转)如何诊断和解决CPU高度消耗(100%)的数据库问题
  3. redis各项功能解决了什么问题
  4. python访问oracle时的问题总结
  5. 邮件服务系列之一基础原理
  6. mac下8080端口到80端口的转发
  7. 最近学习安卓中总结的一些知识点
  8. RabbitMQ-C客户端使用说明
  9. 运用ffmpeg生成MP4文件
  10. H264--NAL层的处理--3