单链表反转
单链表: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;
}
}
}
当然其他方法也有很多,也都不难理解。
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。