206.反转链表
题意:反转一个单链表。
示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL
双双指针法:
创建三个节点 pre(反转时的第一个节点)、cur(当前指向需要反转的节点)、tem(cur反转操作前,需要暂存cur的下一个节点)
ListNode* reverseList(ListNode* head) {
ListNode* pre=nullptr;
ListNode* tem;
ListNode* cur = head;
while(cur!=nullptr){
tem = cur->next;//暂存
cur->next = pre;//反转
pre = cur;//前一个节点移动至下一个
cur = tem;//前一个节点移动至下一个
}
return cur;
}