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

代码随想录 -- 二叉树 -- 删除二叉搜索树中的节点

450. 删除二叉搜索树中的节点 - 力扣(LeetCode)

思路:

递归出口:

1. 当root为空时,返回空。

2. 当root的值和key相等时:

  • root为叶子结点:返回空;
  • root左孩子为空,右孩子不为空:返回root的右孩子;
  • root右孩子为空,左孩子不为空:返回root的左孩子;
  • root的左右孩子都不为空:找到root的右孩子的最左下节点,将root的左孩子连接在此节点,返回root的右孩子。

单层递归逻辑:

  • 当root的值比key大,令root的左孩子等于递归root的左子树;
  • 当root的值比key小,令root的右孩子等于递归root的右子树;
  • 最后返回root。
class Solution(object):def deleteNode(self, root, key):if root==None:return Noneif root.val==key:if root.left==None and root.right==None:return Noneelif root.left!=None and root.right==None:return root.leftelif root.left==None and root.right!=None:return root.rightelse:cur=root.rightwhile cur.left!=None:cur=cur.leftcur.left=root.leftreturn root.rightif root.val>key:root.left=self.deleteNode(root.left,key)if root.val<key:root.right=self.deleteNode(root.right,key)return root


http://www.mrgr.cn/news/30085.html

相关文章:

  • 工单管理软件的优势有哪些?企业如何选择?
  • 【每日一诗】【诗词创作】【诗】《雨前秋夜》
  • 大模型学习起步的经验分享
  • Agile Modbus STM32裸机移植 从机使用
  • 图解Transformer工作原理(非常详细)零基础入门到精通,收藏这一篇就够了
  • C++ 面试模拟02
  • Mac 上哪个剪切板增强工具比较好用? 好用剪切板工具推荐
  • 二叉树的遍历【C++】
  • 土壤墒情测定仪的工作原理
  • layui table中的checkbox禁用问题
  • 再看Java-笔试
  • 为什么嫁人就要嫁公务员?稳定、收入高、福利好、资源多
  • 【技术解析】消息中间件MQ:从原理到RabbitMQ实战(深入浅出)
  • ICL、CoT、ReAct个人记录
  • js中两种异步方式:async+await以及then
  • 基于Python的自然语言处理系列(12):使用TorchText和LSTM进行序列到序列(seq2seq)翻译
  • 2024年03月中国电子学会青少年软件编程(图形化)等级考试试卷(一级)答案 + 解析
  • 基于python+django+vue的图书管理系统
  • 【AI视频】Runway文生视频Gen-2、Gen-3详解
  • 【AIGC半月报】AIGC大模型启元:2024.09(下)