题解 | #反转链表#
反转链表
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
if(pHead==NULL) return pHead;
//没有值则不做翻转,直接输出空链表即可;
//逐个修改结点的next指针,使得链表反向
struct ListNode* tmp = pHead->next;
pHead->next=NULL;
//pHead=tmp;
while(tmp!=NULL){
struct ListNode* q=tmp->next;
tmp->next=pHead;
pHead=tmp;
tmp=q;
}
return pHead;
}
思路如上述的注释,另外,此题还可以使用头插法进行处理,使得链表翻转,准备尝试编写代码留在评论区。

查看1道真题和解析