ListNode* ReverseList(ListNode* head) {
ListNode* pnode = head; //记住只有pnode初始化不为空
ListNode* pReversed = NULL; //若链表空则直接返回pReversed
ListNode* prev = NULL; //因为第一个结点反转后需要指向空
while(pnode != NULL)
{
ListNode* pnext = pnode->next; //保存指向下一个结点的指针,防止链表断裂
if(pnext == NULL) //到了链表结尾,pReversed指向最后一个结点
pReversed = pnode;
pnode->next = prev; //记住这个顺序,画图可以帮助回忆
prev = pnode;
pnode = pnext;
}
return pReversed;
}
网友评论