以下代码希望能在一棵二叉排序树中搜索特定的值。请在横线处填入( ),使其能正确实现相应功能。
TreeNode* search(TreeNode* root, int target) {
if (root == NULL || root->val == target) {
return root;
}
if (_____________) {
return search(root->left, target);
} else {
return search(root->right, target);
}
}位运算:&(与)、|(或)、^(异或)、~(取反)、<<(左移)、>>(右移)。异或性质:a^a=0,a^0=a。
区分逻辑运算(&&,||,!)和位运算(&,|,~,!)。左移右移注意符号位的处理(算术右移vs逻辑右移)。负数的位运算要小心。
【考点】二叉排序树性质|递归搜索|条件分支判断
GESP 六级《数据结构》模块。命题人卡住的是考生对「二叉排序树(BST)性质」的记忆——六级要求会建会查会遍历,但多数考生只背了递归框架,没理解 BST 的核心规则:左子树全小、右子树全大。这道题就是专门测试这个「搜索时如何根据值大小决定方向」的底层逻辑。