題目
難度:★☆☆☆☆
類(lèi)型:二叉樹(shù)
給定二叉搜索樹(shù)(BST)的根節(jié)點(diǎn)和一個(gè)值读宙。 你需要在BST中找到節(jié)點(diǎn)值等于給定值的節(jié)點(diǎn)。 返回以該節(jié)點(diǎn)為根的子樹(shù)拓提。 如果節(jié)點(diǎn)不存在停蕉,則返回 NULL。
例如雷滚,
給定二叉搜索樹(shù):
4
/ \
2 7
/ \
1 3
和值: 2
你應(yīng)該返回如下子樹(shù):
2
/ \
1 3
在上述示例中需曾,如果要找的值是 5,但因?yàn)闆](méi)有節(jié)點(diǎn)值為 5祈远,我們應(yīng)該返回 NULL呆万。
解答
二叉搜索樹(shù)的重要性質(zhì)是:對(duì)于任何一個(gè)結(jié)點(diǎn),左孩子的值比該節(jié)點(diǎn)小车份,而右孩子的值比該節(jié)點(diǎn)大谋减。我們利用這一性質(zhì)進(jìn)行搜索。
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def searchBST(self, root, val):
while root:
if root.val < val:
root = root.right
elif root.val > val:
root = root.left
else:
return root
return
如有疑問(wèn)或建議躬充,歡迎評(píng)論區(qū)留言~