题解 | #反转链表#

反转链表

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

在本篇文章里,我将分享一道很经典的算法题———反转链表,并且分享多种方法去解决方法,希望可以帮助到你😀😀😀

以下代码均经过牛客测试,均正确,请放心测试😊😊😊

解法1:(迭代)

解题思路:


n1=NULL,n2=phead,n3=phead->head;
然后将链表的导向改变就可以进行链表的反转了👌
n3的作用是保存下一个地址,避免找不到后面的链表

代码:


struct ListNode* ReverseList(struct ListNode* head) { struct ListNode *n1=NULL,*n2=head,*n3=head->next; if(head==NULL&&head->next==NULL) return NULL; else { while(n2) { n2->next=n1;//反转 //迭代 n1=n2; n2=n3; if(n3!=NULL) n3=n3->next; } return n1; } }

结果展示:


解法2:(头插)

解题思路:

再设一个链表B,利用链表的头插法将原链表头插到链表B上,继而return 链表B即可

代码:


struct ListNode* ReverseList(struct ListNode* head) { struct ListNode *cur=head,*next=head->next,*newhead=NULL; while(cur!=NULL) { next=cur->next; //头插 cur->next=newhead; newhead=cur; cur=next; } return newhead; }

结果展示:



最后

如果你想关注我,也可以在CSDN上关注我(云小扬),支持我,查阅我写的博客,加油,一起加油。


十分感谢你可以耐着性子把它读完和我可以坚持写到这里,送几句话,对你,也对我:

> 1.做==更好的自己==,而不是完美的别人。
> 2.谁都愿意做自己喜欢的事情,可是,做你该做的事情,才叫成长。 
> 3.活成一个真正有形的人,而不是—摊肉、一团混乱不堪的情绪。 
> 4.放弃很容易,但坚持—定很酷。 > 5.知识不是力量,知识用起来才是力量。
> 6.人生只有两个选择,要么忙着死,要么忙着活! ==熬得住就出众,熬不住就出局==,你的野心很大,所以没资格停下。 
> 7.白天归顺生活,夜晚忠于自己

最后如果觉得我写的还不错,请不要忘记点赞✌,收藏✌,加关注✌哦(。・ω・。)

**愿我们一起加油,奔向更美好的未来,愿我们从懵懵懂懂的一枚==菜鸟==逐渐成为==大佬==。加油,为自己点赞!**

全部评论

相关推荐

群星之怒:1.照片可以换更好一点的,可以适量P图,带一些发型,遮住额头,最好穿的正式一点,可以适当P图。2.内容太少。建议添加的:求职意向(随着投递岗位动态更改);项目经历(内容太少了建议添加一些说明,技术栈:用到了什么技术,还有你是怎么实现的,比如如何确保数据传输稳定的,角色注册用到了什么技术等等。)项目经历是大头,没有实习是硬伤,如果项目经理不突出的话基本很难过简历筛。3.有些内容不必要,比如自我评价,校内实践。如果实践和工作无关千万别写,不如多丰富丰富项目。4.排版建议:建议排版是先基础信息,然后教育背景(要突出和工作相关的课程),然后专业技能(一定要简短,不要长篇大论,写你会什么,会的程度就可以),然后是项目经历(一定要详细,占整个简历一定要超过一半,甚至超过百分之70都可以)。最后如果有一部分空白的话可以填补上校内获得的专业相关的奖项,没有就写点校园经历和自我评价。5.技术一定要够硬,禁得住拷打。还有作息尽量保证正常,不要太焦虑。我24双非本科还是非科班,秋招春招各找了一段实习结果都没有转正,当时都想噶了,最后6月份在校的尾巴也找到一份工作干到现在,找工作有时很看运气的不要急着自我否定。 加油
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-01 13:13
ecece:这么明目张胆虚报就业率啊
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务