亡盪惹
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;
}
沒有留言:
張貼留言