Fork me on GitHub 返回顶部

700. Search in a Binary Search Tree

700. Search in a Binary Search Tree

给定二叉搜索树(BST)的根节点和一个值。你需要在BST中找到节点值等于给定值的节点。返回以该节点为根的子树。如果节点不存在,就返回NULL。

例如

给定二叉搜索树:
        4
       / \
      2   7
     / \
    1   3

和值:2

你应该返回如下子树:
      2 
     / \
    1   3

在上述示例中,如果要找的值是5,但因为没有节点值为5,我们应该返回NULL。
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def searchBST(self, root, val):
        """700. Search in a binary search tree

        :type root: TreeNode
        :type val: int
        :rtyoe: TreeNode
        """
        current_node = root
        while current_node != None:
            if current_node.val == val:
                return current_node
            elif current_node.val < val:
                current_node = current_node.right
            else:
                current_node = current_node.left
        return None
posted @ 2019-03-31 21:34  MrJoker  阅读(98)  评论(0编辑  收藏  举报