Solution:1. Keep 2 pointers. Say A and B.2. Make A point to head and B point to the next of head. 3. Make A->next = NULL4. Make B->next = A. 5. Move B and A by one node.6. Repeat step 4 and 5 until B reach NULL. Make A the head. 7. The list is reversed.

Nice observation. He has missed out on how to proceed by a node. Its not possible without an additional pointer.

Solution:1. Take 3 pointers. Say A and B & C2. Make A point to head and B point to the next of head. C point to next of B. 3. Make A->next = NULL4. Make B->next = A. A=B. B=C. C=B->next. This will move pointer A, B & C by one node.5. Repeat step 4 until C=NULL. Then Make B->next=A and make B head. 6. The list is now reversed.