首元结点是链表中存储第一个数据元素的节点。
头结点是在首元结点之前附设的一个节点,其指针域指向首元结点。
头指针是指向链表第一个节点的指针,若链表设有头结点,则头指针指向头结点;若链表没有设头结点,则头指针指向首元结点
迭代
ListNode* reverseList(ListNode* head) {
if(!head||!head->next)return head;
auto p=head;
auto q=head->next;
while(q)
{
auto o=q->next;
q->next=p;
p=q;
q=o;
}
head->next=NULL;
return p;
}
递归
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if(!head||!head->next)
return head;
auto p=reverseList(head->next);
head->next->next=head;
head->next=NULL;
return p;
}
};