class TreeNode(object):
def __init__(self,x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def trimBST(self, root, L, R):
"""
:type root: TreeNode
:type L: int
:type R: int
:rtype: TreeNode
"""
if not root:
return None
if L > root.val:
return self.trimBST(root.right, L, R)
elif R < root.val:
return self.trimBST(root.left, L, R)
root.left = self.trimBST(root.left, L, R)
root.right = self.trimBST(root.right, L, R)
return root
Sol = Solution()
t1 = TreeNode(1)
t1.left = TreeNode(0)
t1.tight = TreeNode(2)
ans = Sol.trimBST(t1,1,2)
print ans.val
1,比较简洁的算法
2,对于树的操作,核心在于递归的构造