反转链表
// 206. Reverse Linked List
ListNode* Solution::reverseList(ListNode* head)
{
if (head == NULL || head->next == NULL)
return head;
ListNode * p = head; // p指向当前处理的原链表的位置
ListNode * res = head;
ListNode * pHead = head->next;
res->next = NULL; // 初始化第一个节点,next指向一个空
while (pHead)
{
p = pHead;
pHead = pHead->next;
p->next = res;
res = p;
}
return res;
}
Runtime: 8 ms, faster than 100.00% of C++ online submissions for Reverse Linked List.
Memory Usage: 9.1 MB, less than 85.68% of C++ online submissions for Reverse Linked List.
本文详细解析了链表反转算法的实现过程,通过迭代方式,重新连接链表节点的next指针,达到反转链表的效果。算法实现了在O(n)时间复杂度下,将链表的节点顺序完全反转。
246

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



