用 Python 编写程序检查一个值是否存在于 BST 中

pythonserver side programmingprogramming更新于 2026/1/7 2:20:17

假设我们有一个二叉搜索树和另一个名为 val 的输入,我们必须检查树中是否存在 val。

因此,如果输入如下

val = 7,则输出将为 True,因为树中存在 7。

为了解决这个问题,我们将遵循以下步骤−

  • 定义一个函数solve()。这将获取 root, val

  • 如果 root 为 null,则

    • 返回 False

  • 如果 root 的数据与 val 相同,则

    • 返回 True

  • 如果 root 的数据 < val,则

    • 返回 resolve(left of root, val)

  • 返回 resolve(right of root, val)

让我们看看以下实现以便更好地理解−

示例

class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.data = data
      self.left = left
      self.right = right
class Solution:
   def solve(self, root, val):
      if not root:
         return False
      if root.data == val:
         return True
      if root.data > val:
         return self.solve(root.left, val)
      return self.solve(root.right, val)
ob = Solution()
root = TreeNode(5)
root.left = TreeNode(1)
root.right = TreeNode(9) root.right.left = TreeNode(7) root.right.right = TreeNode(10) root.right.left.left = TreeNode(6) root.right.left.right = TreeNode(8) print(ob.solve(root, 7))

输入

root = TreeNode(5)
root.left = TreeNode(1)
root.right = TreeNode(9)
root.right.left = TreeNode(7)
root.right.right = TreeNode(10)
root.right.left.left = TreeNode(6)
root.right.left.right = TreeNode(8)
7

输出

True

相关文章


有用资源