反转链表
题目
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
解析
原链表的头指针的下一个节点指向一个临时节点,并把这个节点的下一个节点指回到当前节点,这样就做了一个翻转,直到最后一个节点为空;
代码
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if(head == NULL || head->next == NULL)
{
return head;
}
ListNode* pre = head;
ListNode* cur = NULL;
while(pre != NULL)
{
ListNode* tmp = pre->next;
pre->next = cur;
cur = pre;
pre = tmp;
}
return cur;
}
};
领取专属 10元无门槛券
私享最新 技术干货