700:二叉樹搜尋,簡單題
定二叉搜尋樹(BST)的根節點和一個值。 你需要在BST中找到節點值等於給定值的節點。 返回以該節點為根的子樹。 如果節點不存在,則返回 NULL。
例如,
給定二叉搜尋樹: 4 / \ 2 7 / \ 1 3 和值: 2
你應該返回如下子樹:
2 / \ 1 3
在上述示例中,如果要找的值是 5
,但因為沒有節點值為 5
,我們應該返回 NULL
。
/** * 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) { int i=root->val; if(val==i) return root; else if(val<i){ if(root->left==NULL) //不判斷會報錯 return NULL; root=root->left; return searchBST(root,val); } else{ if(root->right==NULL) return NULL; root=root->right; return searchBST(root,val); } } };