思路描述:
本题目为反转整个链表,因此可以创建一个新的反转链表
其中原链表的头指针为head,新链表的头指针为newHead(初始化newHead=NULL)
过程中通过修改指针,类似于头插法,逐个将原链表的元素插入到新链表中
图解描述:
①初始化(以下图解为第一轮执行过程演示)
②head->next=Newhead
③Newhead=head
④head=nextNode
代码描述:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head){
struct ListNode *Newhead=NULL;
While(head){
struct ListNode *nextNode=head->next;
head->next=Newhead;
Newhead=head;
head=nextNode;
}
return Newhead;
}
参考:
本文介绍了一种简单有效的链表反转算法。通过创建新的链表头指针newHead,并利用原链表的头指针head,逐步调整每个节点的next指针指向来实现链表反转。该方法易于理解和实现。
420

被折叠的 条评论
为什么被折叠?



