题目16:反转链表(leetcode链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/)
题目分析
代码描述
class Solution {
public:
ListNode* reverseList(ListNode* head) {
//判断链表是否为空或者只有一个节点
if(head == NULL || head->next == NULL)
return head;
//创建一个新的空节点作为链表的头结点
ListNode* newHead = (ListNode*)malloc(sizeof(ListNode));
newHead->next = head;
//遍历链表
ListNode* prev = newHead;
ListNode* curr = head;
while(curr)
{
//保存curr的next
ListNode* nextNode = curr->next;
//反转curr节点
curr->next = prev;
prev = curr;
curr = nextNode;
}
head->next = NULL;
free(newHead);
newHead = NULL;
return prev;
}
};