Python | Leetcode Python题解之第450题删除二叉搜索树中的节点

news/2024/10/4 2:18:33 标签: Python, Leetcode, 题解

题目:

题解

class Solution:
    def deleteNode(self, root: Optional[TreeNode], key: int) -> Optional[TreeNode]:
        cur, curParent = root, None
        while cur and cur.val != key:
            curParent = cur
            cur = cur.left if cur.val > key else cur.right
        if cur is None:
            return root
        if cur.left is None and cur.right is None:
            cur = None
        elif cur.right is None:
            cur = cur.left
        elif cur.left is None:
            cur = cur.right
        else:
            successor, successorParent = cur.right, cur
            while successor.left:
                successorParent = successor
                successor = successor.left
            if successorParent.val == cur.val:
                successorParent.right = successor.right
            else:
                successorParent.left = successor.right
            successor.right = cur.right
            successor.left = cur.left
            cur = successor
        if curParent is None:
            return cur
        if curParent.left and curParent.left.val == key:
            curParent.left = cur
        else:
            curParent.right = cur
        return root

http://www.niftyadmin.cn/n/5689309.html

相关文章

负载均衡--相关面试题(六)

在负载均衡的面试中,可能会遇到一系列涉及概念、原理、实践应用以及技术细节的问题。以下是一些常见的负载均衡面试题及其详细解答: 一、什么是负载均衡? 回答:负载均衡是一种将网络请求或数据传输工作分配给多个服务器或网络资源…

mysql学习教程,从入门到精通,SQL 表的创建(33)

1、SQL 表的创建 在SQL中,创建表的基本语法是使用CREATE TABLE语句。以下是一个基本的CREATE TABLE语法模板,以及对其各个部分的解释: CREATE TABLE 表名 (列名1 数据类型 [约束条件] [默认值],列名2 数据类型 [约束条件] [默认值],...[表级…

The legacy JS API is deprecated and will be removed in Dart Sass 2.0

The legacy JS API is deprecated and will be removed in Dart Sass 2.0 更新了sass版本后,启动项目控制台一直在报错,影响开发效率,强迫症表示忍受不了。 字面意思是:Sass在2.0版本将会移除legacy JS API,所以现在使…

DBT hook 实战教程

本文将介绍dbt中在模型和seed级别使用post-hook的几个具体示例。dbt中的Post-hooks是一个强大而简单的特性,它在构建模型之后(如果是pre-hook,甚至在此之前)执行SQL语句。这些语句实际上(几乎)可以是任何东西,从将表复制到另一个数据库/模式&…

【Kubernetes】常见面试题汇总(五十一)

目录 114. K8S 集群服务访问失败(情况一)? 115. K8S 集群服务访问失败(情况二)? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一&#xff…

AI写作系列1——我重生了

重生之路 第一章:重生的瞬间 我重生了,这一世,我发誓不会再犯同样的错误。记忆如潮水般涌来,前世的痛苦与遗憾交织在一起,让我几乎窒息。曾经的我,是个普通的大学生,拼命学习,却因…

卫生间门口墙皮天天掉,是墙面“返潮”造成的?

业主说房子装修好5年了,卫生间防水出问题了,去现场看一下,看看能怎么处理。      到了工地以后,业主说卫生间门口两侧的墙皮都已经脱落了,天天往下掉,实在没办法了,就在墙上钉了几块纸壳子。…

利用条件逻辑创建简单的模拟程序

利用条件逻辑创建简单的模拟程序 在编程中,条件逻辑(if-elif-else 语句)是控制程序流的重要工具。它允许程序根据不同条件做出不同的决策。这一特性使得我们能够创建更复杂和智能的程序。在本文中,我们将通过一个实际案例来展示如…