LeetCode 700. 二叉搜索树中的搜索

2022-11-26 10:26:39 浏览数 (1)

1. 题目

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

2. 解题

代码语言:javascript复制
class Solution {//递归写法
	TreeNode *ans = NULL;
public:
    TreeNode* searchBST(TreeNode* root, int val) {
        if(root == NULL)
        	return root;
        if(ans)
        	return ans;
        if(root->val == val)
    	{
    		ans = root;
    		return ans;
    	}
        else if(root->val < val)
        	searchBST(root->right, val);
        else
        	searchBST(root->left, val);
        return ans;
    }
};
代码语言:javascript复制
class Solution {//循环写法
public:
    TreeNode* searchBST(TreeNode* root, int val) {
        while(root)
        {
        	if(root->val == val)
        		return root;
        	else if(root->val < val)
        		root = root->right;
        	else
        		root = root->left;
        }
        return NULL;
    }
};

0 人点赞