一、问题描述
翻转一个链表
样例
给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null
二、解题思路
遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续遍历。
三、我的代码
class Solution {
public:
/**
* @param head: The first node of linked list.
* @return: The new head of reversed linked list.
*/
ListNode *reverse(ListNode *head) {
ListNode *prev=NULL;
while(head!=NULL)
{
ListNode *temp=head->next;
head->next=prev;
prev=head;
head=temp;
}
return prev;
}
};
四、我的感想
这个题目本来还不太明白,需要新建一个链表去存储当前指针指向的下一个元素,一开始有点懵,后来咨询大神后就瞬间懂了,感觉又学到了很多知识,很开心。