node*GetNode(node*r,int d)并不能找到右边结点,只能遍历左边结点在呢么办,该怎么解决

node*GetNode(node*r,int d)并不能找到右边结点,只能遍历左边结点在呢么办node*GetNode(node*r,int d){if(

node*GetNode(node*r,int d)并不能找到右边结点,只能遍历左边结点在呢么办
node*GetNode(node*r,int d)
{
if(r)
{
if(r->data==d)return r;
return GetNode(r->left,d);
return GetNode(r->right,d);
}
return NULL;
}

[解决办法]

C/C++ code
node*GetNode(node*r,int d){  node*p = NULL;  if(r)  {   if(r->data==d)   {     p = r;   }   else   {     p = GetNode(r->left,d);     if(p==NULL)      p = GetNode(r->right,d);   }  }  return p;}