单链表:head->1->2->3->4->5,反转后:head->5->4->3->2->1,用代码实现。
这个题非常简单,也比较常考,基本思路就是将链表第一个元素后的元素不停的移动到head后。例子如下:
head->1->2->3->4->5
head->2->1->3->4->5
head->3->2->1->4->5
head->4->3->2->1->5
head->5->4->3->2->1
struct Node
{
int val;
struct Node *next;
};
void reverseLinkedList(struct Node *head)
{
struct Node *first = head->next;
if(first != NULL)
{
while(first->next != NULL)
{
struct Node *node = first->next;
first->next = node->next;
node->next = head->next;
head->next = node;
}
}
}
当然其他方法也有很多,也都不难理解。