leetcode-700. 二叉搜索樹中的搜索刷題筆記(c++)

寫在前面

  • 難度:簡單,不贅述
  • 遞歸搜索
  • 知識點
    • 二叉搜索樹(BST)
      • 用於在一個集合中查找元素
      • 數據域有序的二叉樹,即對樹上的每個結點,都滿足其左子樹上所有結點的數據域均小於或等於根結點的數據域,右子樹上所有結點的數據域均大於根結點的數據域

題目詳情

給定二叉搜索樹(BST)的根節點和一個值。 你需要在BST中找到節點值等於給定值的節點。 返回以該節點爲根的子樹。 如果節點不存在,則返回 NULL。

例如,

給定二叉搜索樹:

        4
       / \
      2   7
     / \
    1   3

和值: 2
你應該返回如下子樹:

      2     
     / \   
    1   3
在上述示例中,如果要找的值是 5,但因爲沒有節點值爲 5,我們應該返回 NULL。

ac代碼

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
*/
class Solution
{
public:
    TreeNode* searchBST(TreeNode* root, int val)
    {
//        if(root == NULL || root->val == val)
        if(!root || root->val == val)
            return root;
        else if (root->val > val)
            return searchBST(root->left, val);
        else
            return searchBST(root->right, val);
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章