一:题目
二:上码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public: /**关于递归函数的返回值问题1.如果我们要搜索整棵树不用处理递归返回值,递归函数就不要返回值2.如果我们搜索整棵树需要处理返回值,那么就要返回值(比如这道题.我们是需要在找到这个节点的时候就返回该节点 并不再继续往下进行遍历了 那么就需要加上返回值)*/ TreeNode* searchBST2(TreeNode* root, int val) {if(root == NULL || root->val == val) return root;//中if(root->val > val)return searchBST2(root->left,val);//左if(root->val < val)return searchBST2(root->right,val);//右return NULL;//找不到} TreeNode* searchBST(TreeNode* root, int val) {return searchBST2(root,val);}
};