Algorithm to Reverse a Singly Linked List

Algorithm fnSLL_Reverse(ptrStart)
{
 SLLNode *ptrTemp1, ptrTemp2, ptrTemp3;
 ptrTemp3=ptrStart;
 ptrTemp2=NULL;
 while(ptrTemp3!=NULL)
{
 ptrTemp1=ptrTemp2;
 ptrTemp2=ptrTemp3;
 ptrTemp3=ptrTemp3->ptrNext;
 ptrTemp2->ptrNext=ptrTemp1;
}
ptrStart=ptrTemp2;
return ptrStart;
}  //End of Algorithm