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

20th Day| 235.二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作, 450.删除二叉搜索树中的节点

LeetCode 235 二叉搜索树的最近公共祖先

题目链接:235.二叉搜索树的最近公共祖先

/**递归法 */
class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root.val > p.val && root.val > q.val){TreeNode left = lowestCommonAncestor(root.left, p, q);return left;}if(root.val < p.val && root.val < q.val) return lowestCommonAncestor(root.right, p, q);return root;}
}/** 迭代法 */
class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {while(root != null){if(root.val > p.val && root.val > q.val) root = root.left;else if(root.val < p.val && root.val < q.val) root = root.right;else break;}return root;}
}

LeetCode 701 二叉树中的插入操作

题目链接:701.二叉搜索树中的插入操作

/** 能在叶子节点这找到插入的位置 */
class Solution {public TreeNode insertIntoBST(TreeNode root, int val) {TreeNode cur = root;TreeNode res= traversal(cur, val);return res;}public TreeNode traversal(TreeNode cur, int val){if(cur == null){TreeNode node = new TreeNode(val, null, null);return node;}if(val < cur.val){TreeNode left = traversal(cur.left, val);cur.left = left;}if(val > cur.val){TreeNode right = traversal(cur.right, val);cur.right = right;}return cur;}
}

LeetCode 450 删除二叉搜索树中的节点

题目链接:450.删除二叉搜索树中的节点

class Solution {public TreeNode deleteNode(TreeNode root, int key) {//终止条件没找到if(root == null) return null;if(root.val == key){//1.删除叶子节点if(root.left == null && root.right == null){return null;}//2.左节点不为空右节点为空else if(root.left != null && root.right == null){return root.left;}//3.左节点为空右节点不为空else if(root.left == null && root.right != null){return root.right;}else{//4.左右节点都不为空TreeNode cur = root.right;while(cur.left != null) cur = cur.left;cur.left = root.left;return root.right;}}if(key < root.val){root.left = deleteNode(root.left, key);} if(key > root.val){root.right = deleteNode(root.right, key);}return root;}
}


文章转载自:
http://chemise.hdqtgc.cn
http://alcove.hdqtgc.cn
http://aprism.hdqtgc.cn
http://bloodsucker.hdqtgc.cn
http://amboinese.hdqtgc.cn
http://cardamom.hdqtgc.cn
http://androecium.hdqtgc.cn
http://aiie.hdqtgc.cn
http://absorbability.hdqtgc.cn
http://catatonia.hdqtgc.cn
http://balaclava.hdqtgc.cn
http://basalt.hdqtgc.cn
http://americanism.hdqtgc.cn
http://amphipath.hdqtgc.cn
http://chelyabinsk.hdqtgc.cn
http://blessing.hdqtgc.cn
http://batch.hdqtgc.cn
http://backside.hdqtgc.cn
http://aerialist.hdqtgc.cn
http://cetacean.hdqtgc.cn
http://choragic.hdqtgc.cn
http://bullionism.hdqtgc.cn
http://bigot.hdqtgc.cn
http://balsamine.hdqtgc.cn
http://cheribon.hdqtgc.cn
http://ale.hdqtgc.cn
http://cadetcy.hdqtgc.cn
http://bombardon.hdqtgc.cn
http://backroad.hdqtgc.cn
http://autarkic.hdqtgc.cn
http://www.dtcms.com/a/281042.html

相关文章:

  • Postman + Newman + Jenkins 接口自动化测试
  • 使用canal同步分库分表数据,到 Elasticsearch
  • JavaScript事件
  • 【数据同化案例1】ETKF求解 Lorenz-63 模型的同化系统(完整MATLAB实现)
  • Java-特殊文件、日志技术
  • CherryStudio配置DeepSeek调用MCP服务实现任务自动化
  • Elasticsearch 9.x 搜索执行过程(源码解析)
  • AOP简化MyBatis分页:高效自动化方案
  • 第二十篇 Word文档自动化:Python批量生成、模板填充与内容修改,告别繁琐排版!
  • Web3 支付系统:面向企业和消费者的全面概述
  • 时间序列挖掘及建模
  • Linux系统集群部署模块之Keepalived双机热备
  • 使用SQLMAP的文章管理系统CMS的sql注入渗透测试
  • Java全栈工程师面试实录:从电商系统到AIGC的层层递进
  • WSF70N10G N 沟道 MOSFET 在蓝牙耳机中的应用分析
  • Linux获取CPU/GPU的温度
  • docker部署gbase8s(数据持久化)并用可视化工具管理
  • NuGet01-安装及使用
  • gRPC实战指南:像国际快递一样调用跨语言服务 —— 解密Protocol Buffer与HTTP/2的完美结合
  • 【GPIO】从STM32F103入门GPIO寄存器
  • Video Python(Pyav)解码一
  • 面试150 完全二叉树的节点数
  • 力扣73:矩阵置零
  • 20250715_Sneak_neuro 靶机复盘
  • 三种深度学习模型(LSTM、CNN-LSTM、贝叶斯优化的CNN-LSTM/BO-CNN-LSTM)对北半球光伏数据进行时间序列预测
  • 【15】MFC入门到精通——MFC弹窗提示 MFC关闭对话框 弹窗提示 MFC按键触发 弹窗提示
  • C++(STL源码刨析/stack/queue/priority_queue)
  • Linux操作系统之信号:保存与处理信号
  • 23种设计模式--#1工厂模式
  • 运维打铁: 软件定义网络(SDN)的实践应用