🌈个人主页:羽晨同学
💫个人格言:“成为自己未来的主人~”
首先我们先来看代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
typedef struct ListNode SListNode;
struct ListNode* reverseList(struct ListNode* head)
{
struct ListNode* n1=NULL;
struct ListNode* n2=head;
while(n2)
{
struct ListNode* pre = n2->next;
n2->next = n1;
n1=n2;
n2=pre;
}
return n1;
}
链表的反转其实更像是一个模块,在许多其他题目中都有相应的组成。
在这道题目当中,有几个需要注意的点:
一个是pre节点的设置,若是不仅行设置的话,我们无法更新n2节点。
另外一个则是逻辑关系的考虑,代码之间的逻辑要得到充分的考虑。