描述
给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。
ListNode* ReverseList(ListNode* head) {
//考虑头节点为空的情况
if (head == nullptr)
return nullptr;
else {
ListNode* parent = head;
ListNode* cur = parent->next;
//考虑双向指针的情况
parent->next = nullptr;
//开始循环到cur为空,parent为尾节点的情况结束
while (cur) {
ListNode* next = cur->next;
cur->next = parent;
parent = cur;
cur = next;
}
return parent;
}
}