题解 | #反转链表#
反转链表
https://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
struct ListNode*last=NULL;//指向已经反转的第一个 相当于一个新链表的头结点
struct ListNode*sec=pHead->next;//指向第二个元素
while(pHead!=NULL){
pHead->next=last;//旧链表第一个指向新的链表的最前面头 把旧的每个最前面的头部数据 放到新链表尾部
last=pHead;//更新新链表的头结点
pHead=sec;//接着两个后移,后置指针防止断链
sec=sec->next;
}
return last;
}

