题解 | #反转链表#
反转链表
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; }
思路如上述的注释,另外,此题还可以使用头插法进行处理,使得链表翻转,准备尝试编写代码留在评论区。