LeetCode每日一题(2021.11.26)【EASY】
给定 二叉搜索树(BST) 的根节点和一个值。 你需要在BST中找到节点值 等于 给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。
示例 1:
输入:[6,3,8,2,4,7,9,1], val = 8
输出:[8,7,9]
示例 2:
输入:[4,2,7,1,3], val = 2
输出:[2,1,3]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-in-a-binary-search-tree
二叉搜索树(BST) 需要满足:
- 若左子树不为空,则左子树所有节点值小于根节点的值
- 若右子树不为空,则右子树所有节点值大于根节点的值
- 每一个左子树、右子树都是二叉搜索树
根据这个性质,我们可以通过判断查找值和根节点的大小,来确定该值位于哪棵子树,从而进行搜索查找。
# 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 searchBST(self, root: TreeNode, val: int) -> TreeNode:
while root:
if root.val < val:
root = root.right
elif root.val > val:
root = root.left
else:
return root