我无法理解此代码用于并行二叉树搜索,有人可以详细解释吗

我正在尝试理解此代码。但是,如果有人可以像我五岁那样解释(就所有细节以及发生的事情而言),以便让我把握住这一切,我什么都不会想到

`

Partree *treeParSearch(char *key, int len) 
{ 
ParTree *ptr; 
int flag; 
for( ptr = root; ptr != (void *)0; ) 
{ 
 flag = memcmp(key, ptr->key, len); 
 if( flag == 0 ) return ptr; 
 else if( flag < 0) ptr = ptr->left; 
 else ptr = ptr->right; 
} 
return ptr; 
}