反转链表
题目链接: 反转链表
有关题目
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 3:
输入:head = []
输出:[]
提示:
链表中节点的数目范围是 [0, 5000]
-5000 <= Node.val <= 5000
题解
法一:迭代
参考官方题解
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head){
struct ListNode *newHead = NULL;
struct ListNode *curr = head;
while(curr != NULL)
{
struct ListNode *temp = curr->next;//备份当前节点的下一个节点
curr->next = newHead;
newHead = curr;
curr = temp;
}
return newHead;
}