700. 二叉搜索树中的搜索
✅做题思路or感想:
- 递归参数:一个遍历节点,一个比较节点值的val
- 递归中止条件:
cur == nullptr
为止,即是节点遍历到了头 - 单层递归逻辑:比较节点值和目标值
- 如果相等,则给预设的节点赋值
- 如果大了,就往左节点走
- 如果小了,就往右节点走
- 最后在主函数返回预设节点
class Solution {
public:
TreeNode* result = nullptr; //预设一个全局节点
void dfs(TreeNode* cur, int val) {
if (cur == nullptr)return; //中止条件
//三种情况的处理
if (cur->val == val) {
result = cur;
return;
}
if (cur->val > val)dfs(cur->left, val);
if (cur->val < val)dfs(cur->right, val);
}
TreeNode* searchBST(TreeNode* root, int val) {
dfs(root, val);
return result;
}
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端