前言
“黑暗也别枯萎 我骄傲的向日葵”
本章的内容是力扣每日随机一题的部分方法的解析
提示:以下是本篇文章正文内容,下面案例可供参考
206. 反转链表
链接:
206. 反转链表ink
方法一:改变指针指向
1.1代码:
struct ListNode* reverseList(struct ListNode* head) { if(head==NULL) return NULL; struct ListNode*n1=NULL; struct ListNode*n2=head; struct ListNode*n3=n2->next; while(n2) { n2->next=n1; n1=n2; n2=n3; if(n3!=NULL) n3=n3->next; } return n1; }
1.2流程图
1.3注意:
当n2结束时才完成了链表的反转而非n3如果时n3则4和5就没有进入循环就不会反转
要判断一下n3不等于NULL才能n3=n3->next
方法二:头插
2.1代码:
struct ListNode* reverseList(struct ListNode* head) { struct ListNode*rhead=NULL; struct ListNode*cur=head; while(cur) { struct ListNode*next=cur->next; cur->next=rhead; rhead=cur; cur=next; } return rhead; }
2.2流程图:
总结
Ending,今天的力扣每日一题内容就到此结束啦,如果后续想了解更多,就请关注我吧。