当前位置:   article > 正文

数据结构 -- 链表 -- 链表反转_数据结构链表数据反转

数据结构链表数据反转

今天在牛客网上玩了一下刷题,尝试了一下链表反转,有些思路借此记录一下;

题目是这样子的:

        一开始,没有什么好的思路,毕竟数据结构也有一段时间没有接触,大概思考了一点时间,有了下面的第一个思路:生成一个新的节点A,保存链表节点1的value,然后继续生成节点B,保存A的地址以及节点2的value;依次生成节点与复制数据,不就完成了这个动作,后来想了一下,那我原来的链表还要释放,好家伙,又需要遍历一次链表,哪个少年能接受这种做法,我这种方法肯定不是最优的,但绝对是最笨的实现;

        后来,琢磨了一下子后,突然想到链表不就是根据节点里的地址找到下一个节点的吗,那我直接搞这个数据,把他修改为上一个节点的地址,这样依次修改,最终不就完成链表的反转;

 

于是,第一份代码出来了:

  1. /**
  2. * struct ListNode {
  3. * int val;
  4. * struct ListNode *next;
  5. * };
  6. *
  7. * C语言声明定义全局变量请加上static,防止重复定义
  8. */
  9. /**
  10. *
  11. * @param pHead ListNode类
  12. * @return ListNode类
  13. */
  14. struct ListNode* ReverseList(struct ListNode* pHead ) {
  15. // write code here
  16. struct ListNode* pListNodePre = pHead, *pListNodeCur,*pListNodeNext;
  17. if(pHead == NULL)
  18. return NULL;
  19. pListNodeCur = pListNodePre->next;
  20. pListNodePre->next = NULL;
  21. while(pListNodeCur)
  22. {
  23. pListNodeNext = pListNodeCur->next;
  24. pListNodeCur->next = pListNodePre;
  25. pListNodePre = pListNodeCur;
  26. pListNodeCur = pListNodeNext;
  27. }
  28. return pListNodePre;
  29. }

然后,发现代码运行占用的空间竟然比前辈们的大,仔细研究了与前辈的代码差别后,整出来了V2.0的版本,就是把中间的赋值表达式去掉了,然后,将pHead由原来赋值给pListNodePre修改为赋值给pListNodeCur;

  1. /**
  2. * struct ListNode {
  3. * int val;
  4. * struct ListNode *next;
  5. * };
  6. *
  7. * C语言声明定义全局变量请加上static,防止重复定义
  8. */
  9. /**
  10. *
  11. * @param pHead ListNode类
  12. * @return ListNode类
  13. */
  14. struct ListNode* ReverseList(struct ListNode* pHead ) {
  15. // write code here
  16. struct ListNode* pListNodePre = NULL, *pListNodeCur = pHead,*pListNodeNext;
  17. if(pHead == NULL || pHead->next == NULL)
  18. return pHead;
  19. while(pListNodeCur)
  20. {
  21. pListNodeNext = pListNodeCur->next;
  22. pListNodeCur->next = pListNodePre;
  23. pListNodePre = pListNodeCur;
  24. pListNodeCur = pListNodeNext;
  25. }
  26. return pListNodePre;
  27. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/726185
推荐阅读
相关标签
  

闽ICP备14008679号