翻转链表
问题描述: 翻转一个链表 如给出一个链表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) {
// write your code here
ListNode *prev=NULL;
while(head!=NULL)
{
ListNode *temp=head->next;
head->next=prev;
prev=head;
head=temp;
}
return prev;
}
};
public:
/**
* @param head: The first node of linked list.
* @return: The new head of reversed linked list.
*/
ListNode *reverse(ListNode *head) {
// write your code here
ListNode *prev=NULL;
while(head!=NULL)
{
ListNode *temp=head->next;
head->next=prev;
prev=head;
head=temp;
}
return prev;
}
};