目录
题目:
示例:
分析:
代码:
题目:
示例:
分析:
题目给我们一个搜索二叉树,让我们找出节点值等于目标的节点并返回出去。
首先我们可以直接遍历整棵二叉树,找到值相同的节点就返回出去,不过这样就没有用到二叉搜索数的特性了。
二叉搜索数的特性就是,每一个节点的左子树上所有节点的值都会比当前节点的值更小,而右子树上所有节点的值都会比当前节点的值更小。
因此我们在遍历搜索二叉树的时候将当前节点的值和目标值做比较,如果值和当前节点的值相同,那么返回该节点。如果当前节点的值比目标值更小,那说明如果有值等于目标值的节点,那一定是在当前节点的右子树,所以此时我们应该向右子树移动。反之则向左子树移动。
直到找到了目标节点或者是遍历到了空指针节点,那么都将当前节点返回出去即可。文章来源:https://www.toymoban.com/news/detail-683915.html
文章来源地址https://www.toymoban.com/news/detail-683915.html
代码:
class Solution {
public:
TreeNode* searchBST(TreeNode* root, int val) {
if(root==nullptr || root->val==val) return root;
if(root->val>val) return searchBST(root->left,val);
else return searchBST(root->right,val);
}
};
到了这里,关于【LeetCode75】第四十一题 二叉搜索树中的搜索的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!