设三个指针p, ppre, pNext,分别指向当前结点,当前节点的前一个节点,当前节点的后一个节点。
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if (head == NULL || head->next == NULL) return head;
ListNode *p = head;
ListNode *pNext = NULL;
ListNode *ppre = NULL;
while (p) {
pNext = p->next;
p->next = ppre;
ppre = p;
p = pNext;
}
return ppre;
}
};
本文深入探讨了链表逆序算法的实现细节,通过定义三个指针p、ppre、pNext,分别指向当前节点、前一节点和后一节点,实现链表的逆序。该算法适用于链表为空或只有一个元素的特殊情况。
1235

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



