提交 4e00179e 编写于 作者: E Ed

Add 450 Python3 version

上级 8b8f4135
# 二叉搜索树操作集锦
# 二叉搜索树操作集锦
<p align='center'>
......@@ -310,4 +310,56 @@ void BST(TreeNode root, int target) {
<img src="../pictures/qrcode.jpg" width=200 >
</p>
======其他语言代码======
\ No newline at end of file
======其他语言代码======
[Edwenc](https://github.com/Edwenc) 提供 leetcode第450题的python3 代码:
```python3
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def deleteNode(self, root: TreeNode, key: int) -> TreeNode:
# 如果没有树 直接返回None
if root == None:
return None
# 如果要删除的结点 就是当前结点
if root.val == key:
# 左子树为空 只有右子树需要被更新 直接返回
if root.left == None:
return root.right
# 右子树为空 只有左子树需要被更新 直接返回
if root.right== None:
return root.left
# 找出此结点左子树的最大值
# 用这个最大值 来代替当前结点
# 再在左子树中递归地删除这个最大值结点
big = self.getMax( root.left )
root.val = big.val
root.left = self.deleteNode( root.left , big.val )
# 当前结点较大 它的左子树中需要删除节点 递归到左子树
elif root.val > key:
root.left = self.deleteNode( root.left , key)
# 当前结点较小 它的右子树中需要删除节点 递归到右子树
else:
root.right= self.deleteNode( root.right, key)
return root
# 辅助函数
# 功能是找出此二叉搜索树中最大元素的结点 并返回此结点
def getMax( self , node ):
# 一直找它的右子树 直到为空
while node.right:
node = node.right
return node
```
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册