题解 | #NC78-反转链表#
反转链表
http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
*
* @param pHead ListNode类
* @return ListNode类
*/
struct ListNode* ReverseList(struct ListNode* pHead ) {
// write code here
if(pHead == NULL || pHead->next == NULL)
return pHead;
struct ListNode *p = NULL;
struct ListNode *tmp;
while(pHead != NULL)
{
tmp = pHead->next;//记录当前节点的下一个节点
pHead->next = p;//当前节点的next指向反转后的链表
p = pHead;//P指向反转后的第1个节点
pHead = tmp;//继续操作下一个节点
}
return p;
}