题解 | #反转链表#
反转链表
http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
*
* @param pHead ListNode类
* @return ListNode类
*/
//无头节点的链表反转思路如下:依此从链表中取出一个值,让其指向前面已经取出的反转链表即可。
//Pr指向前面所取的链表,L指向当前所取节点的下一个节点(用于保存余下未取的节点)。
struct ListNode* ReverseList(struct ListNode* pHead ) {
// write code here
struct ListNode *Pr=NULL; //前段链表
struct ListNode *L=NULL;
if(pHead!=NULL)
{
while(pHead!=NULL)
{
L=pHead->next;
pHead->next=Pr;
Pr=pHead;
pHead=L;
}
pHead=Pr;
}
return pHead;
}