定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
限制:
0 <= 节点个数 <= 5000
解题思路
按照头节点插入的方式创建一个新的链表返回,即完成了反转。
代码展示
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* HeadList = NULL;
while(head!=NULL)
{
ListNode* List = new ListNode(head->val);
List->next = HeadList;
HeadList = List;
head=head->next;
}
return HeadList;
}
};
本文详细解析了链表反转的算法实现,通过定义一个函数,输入链表的头节点,实现链表的反转并返回反转后的头节点。示例展示了从正序到逆序的转换过程,适用于节点数量在0至5000之间的链表。
400

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



