题目描述
输入一个链表,反转链表后,输出反转链表后头节点
分析:
建立三个指针,previousNode,currentNode,nextNode,每次把currentNode->指向previousNode,然后三个指针一起往后移动,循环操作。
代码:
ListNode* ReverseList(ListNode* pHead) {
if(pHead == nullptr || pHead->next == nullptr)
return pHead;
ListNode* previousNode = pHead;
ListNode* currentNode = pHead->next;
ListNode* nextNode = nullptr;
previousNode->next = nullptr;
while(currentNode){
nextNode = currentNode->next;
currentNode->next = previousNode;
previousNode = currentNode;
currentNode = nextNode;
}
return previousNode;
}