当前位置: 首页 > news >正文

力扣701 二叉搜索树中的插入操作 java实现

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]

提示:

  • 树中的节点数将在[0, 104]的范围内。
  • -108 <= Node.val <= 108
  • 所有值Node.val独一无二的。
  • -108 <= val <= 108
  • 保证val在原始BST中不存在。

由于该题不要求是平衡二叉树,所以只需要按照构造来即可。即递归二叉搜索树,若给出的值比当前节点的值大,则向右递归,若比当前节点小则向左递归,直至最终遇到空节点。具体代码如下:

public static void main(String[] args) { // 测试用 TreeNode treeNode1 = new TreeNode(4); treeNode1.left = new TreeNode(2); treeNode1.right = new TreeNode(7); treeNode1.left.left = new TreeNode(1); treeNode1.left.right = new TreeNode(3); System.out.println(insertIntoBST(treeNode1, 5)); } public static TreeNode insertIntoBST(TreeNode root, int val) { if (root == null){ root = new TreeNode(val); return root; } if (val > root.val){ // 大于当前值则向右递归,反之向左递归 root.right = insertIntoBST(root.right, val); }else { root.left = insertIntoBST(root.left, val); } return root; }

以上为记录分享用,代码较差请见谅

http://www.cnnetsun.cn/news/87252.html

相关文章:

  • 全球USB设备厂商ID与产品型号大全
  • Qwen3-14B如何避免输出截断?关键在max_new_tokens设置
  • 16倍压缩+双专家架构重塑视频生成效率
  • 主机监控指标解析—内存篇
  • Keepalived详解:安装与高可用集群配置
  • LangChain与AutoGPT:AI工作流引擎深度对比
  • Excalidraw代码贡献指南:如何参与开源社区开发
  • LangChain-Chatchat本地部署与配置指南
  • shared_ptr 快照用于安全地并发读取,无需拷贝
  • 官方适配完的命令行ruby在鸿蒙PC上的使用方法
  • LobeChat能否接收语音指令?全双工对话体验
  • LangFlow快速入门:可视化构建AI应用
  • Langflow本地部署:隔离环境安装指南
  • 云端算力的进化:云服务器架构演进的三重范式变革
  • 解决facefusion报错No source face detected
  • PaddleOCR中英文文字识别实战与优化指南
  • LobeChat剪贴板交互优化:复制粘贴操作更加流畅自然
  • YOLOv5详解:高效目标检测模型实战指南
  • Windows下PaddleOCR GPU版环境搭建指南
  • “开盒神器”威胁下的自保手册:七招应对超级 Agent 的实时入侵
  • EBS后台查询人员职责信息
  • Qwen3-8B-AWQ性能优化与最佳实践
  • LLaMA-Factory 微调 DeepSeek-R1 模型实战指南
  • Langflow自定义组件开发与界面集成详解
  • LobeChat能否协助撰写简历?求职者福音来了
  • 使用Miniconda创建Python 3.8环境的完整步骤
  • 搭建Ollama并运行qwen,简单RAG实现
  • LobeChat能否显示用量统计?透明化消费展示
  • 解决langchain-chatchat缺少__init__.py问题
  • Linly-Talker:能对答如流的AI数字人