Lei宝啊:个人主页
题目:
描述:
给你单链表的头节点
head
,请你反转链表,并返回反转后的链表。接口:
struct ListNode* reverseList(struct ListNode* head){}
示例:
输入:
head = [1,2,3,4,5]
输出:
[5,4,3,2,1]
思路:
先将第一个节点的next指向NULL,同时还要记住原来第一个节点指向的下一个节点的位置
接下来我们希望第二个节点指向第一个节点,所以要用n1记录第一个节点的位置,n2记录第二个节点的位置,同时我们还需要一个n3去记录第三个节点的位置
文章来源:https://www.toymoban.com/news/detail-619408.html
这样一直往下走,直到到尾,有这样的情况:
文章来源地址https://www.toymoban.com/news/detail-619408.html
所以我们给出的解决方法是当他为空时不往下走
实现代码 :
ListNode* n1 = NULL; ListNode* n2 = head; if(n2) ListNode* n3 = n2->next; while (n2) { n2->next = n1; n1 = n2; n2 = n3; if (n3) n3 = n3->next; } return n1;
到了这里,关于C语言:反转一个单链表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!