您的位置:首页 > 编程语言 > Python开发

[LeetCode]669. Trim a Binary Search Tree解法及python代码

2018-01-25 15:59 477 查看
原题链接:https://leetcode.com/problems/trim-a-binary-search-tree/

这个题描述中给的是平衡二叉树,利用平衡二叉树性质,当前节点的值小于L时,这个节点的左子树都小于L,可以剪掉,并用右子树代替当前节点;当前节点的值大于R时,这个节点的右子树都大于R,可以剪掉,并用左子树代替当前节点。代码如下:

class Solution(object):
#平衡二叉树删除节点的思想
def trimBST(self, root, L, R):
"""
:type root: TreeNode
:type L: int
:type R: int
:rtype: TreeNode
"""
def helper(node):
if not node:
return None
if node.val < L:
return helper(node.right)
elif node.val > R:
return helper(node.left)
node.left = helper(node.left)
node.right = helper(node.right)
return node
root = helper(root)
return root
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python leetcode 递归