2023年7月30日 星期日

[700] Search in a Binary Search Tree

其實我不知道為什麼我寫的那麼複雜 囧
亡盪惹

struct TreeNode* searchBST(struct TreeNode* root, int val){
if (root==NULL)
return NULL;
struct TreeNode* ptr=root;
if (root->val < val )
ptr = searchBST(root->right,val);
else if (root->val > val )
ptr = searchBST(root->left,val);
else if (root->val == val)
return root;
else
return NULL;
return ptr;
}

其實只要這樣就好了!!!

struct TreeNode* searchBST(struct TreeNode* root, int val){
if (root==NULL)
return NULL;
if (root->val < val )
return searchBST(root->right,val);
if (root->val > val )
return searchBST(root->left,val);
if (root->val == val)
return root;
return NULL;
}

而且重點是,根本不用用遞迴啊啊啊啊啊啊啊(抱頭)我到底在想什麼呢Orz

struct TreeNode* searchBST(struct TreeNode* root, int val){
struct TreeNode* ptr=root;
while (ptr !=NULL)
{
if (ptr->val >val)
ptr = ptr->left;
else if (ptr->val < val)
ptr= ptr->right;
else if (ptr->val ==val)
return ptr;
}
return NULL;
}

沒有留言:

張貼留言