关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

力扣---LeetCode206. 反转链表(链表经典题)

发布时间:2023-06-28 12:01:06

前言


“黑暗也别枯萎 我骄傲的向日葵”

本章的内容是力扣每日随机一题的部分方法的解析

提示:以下是本篇文章正文内容,下面案例可供参考

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,今天的力扣每日一题内容就到此结束啦,如果后续想了解更多,就请关注我吧。


/template/Home/leiyu/PC/Static