跳到主要内容

700.二叉搜索树中的搜索

链接:700.二叉搜索树中的搜索
难度:Easy
标签:树、二叉搜索树、二叉树
简介:给定二叉搜索树(BST)的根节点和一个值。 你需要在 BST 中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。

题解 1 - java

  • 编辑时间:2020-02-23
  • 内存消耗:41.5MB
  • 编程语言:java
  • 解法介绍:遍历判断,根据 bst 的原理进行二分搜索。
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
if (root == null)
return null;
if (root.val == val)
return root;
while (root != null && root.val != val) {
if (val > root.val)
root = root.right;
else if (val < root.val)
root = root.left;
}
return root;
}
}

题解 2 - typescript

  • 编辑时间:2021-11-26
  • 执行用时:108ms
  • 内存消耗:44.7MB
  • 编程语言:typescript
  • 解法介绍:递归。
function searchBST(root: TreeNode | null, val: number): TreeNode | null {
if (root === null) return null;
if (root.val === val) return root;
if (root.val > val) return searchBST(root.left, val);
else return searchBST(root.right, val);
}

题解 3 - c

  • 编辑时间:2021-11-26
  • 执行用时:28ms
  • 内存消耗:14.9MB
  • 编程语言:c
  • 解法介绍:递归。
struct TreeNode* searchBST(struct TreeNode* root, int val){
if (!root) return NULL;
if (root->val == val) return root;
if (root->val > val) return searchBST(root->left, val);
else return searchBST(root->right, val);
}