LintCode:删除二叉查找树的节点

来源:互联网 发布:mac 自动弹出网页 编辑:程序博客网 时间:2024/04/28 11:56

LintCode:删除二叉查找树的节点

"""Definition of TreeNode:class TreeNode:    def __init__(self, val):        self.val = val        self.left, self.right = None, None"""class Solution:    """    @param root: The root of the binary search tree.    @param value: Remove the node with given value.    @return: The root of the binary search tree after removal.    """        def removeNode(self, root, value):        if not root:            return        if root.val > value:            root.left = self.removeNode(root.left, value)        elif root.val < value:            root.right = self.removeNode(root.right, value)        elif root.left and root.right:            root.val = self.findMin(root.right)            self.removeNode(root.right, root.val)        else:            return root.left if root.left else root.right        return root    def findMin(self, root):        while root.left:            root = root.left        return root.val
0 0
原创粉丝点击