编程练习-反转链表

Code Snippet
  1. #include <iostream>
  2.  
  3. #define Reverse2
  4.  
  5. using namespace std;
  6.  
  7. struct linka{
  8.     int data;
  9.     linka* next;
  10. };
  11.  
  12. void reverse(linka* &head)
  13. {
  14.     if(head == NULL)
  15.         return;
  16.  
  17.     linka* pPre = NULL;
  18.     linka* pCur = head;
  19.  
  20.     while(pCur != NULL)
  21.     {
  22.         linka* pNext = pCur->next;
  23.         pCur->next = pPre;
  24.         pPre = pCur;
  25.         pCur = pNext;
  26.     }
  27.  
  28.     head = pPre;
  29. }
  30.  
  31. linka* reverse2(linka* cur, linka*& head)
  32. {
  33.     if(cur == NULL || cur->next == NULL)
  34.     {
  35.         head = cur;
  36.         return cur;
  37.     }
  38.     else
  39.     {
  40.         linka* temp = reverse2(cur->next, head);
  41.         temp->next = cur;
  42.         return cur;
  43.     }
  44. }
  45.  
  46. int main()
  47. {
  48.     linka arrayTest[10];
  49.     for(int i = 0; i < 10; i++)
  50.     {
  51.         arrayTest[i].data = i;
  52.         arrayTest[i].next = arrayTest+ i +1;
  53.         cout<< arrayTest[i].data<<endl;
  54.     }
  55.     arrayTest[9].next = NULL;
  56.  
  57.     linka* phead = arrayTest;
  58.  
  59. #ifdef Reverse2
  60.     linka* cur = reverse2(phead, phead);
  61.     cur->next = NULL;
  62. #else
  63.     reverse(phead);
  64. #endif
  65.  
  66.     while(phead->next != NULL)
  67.     {
  68.         cout<< phead->data<<endl;
  69.         phead = phead->next;
  70.     }
  71.     cout<<phead->data<<endl;
  72. }

posted on   中道学友  阅读(283)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

< 2009年11月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12

技术追求准确,态度积极向上

点击右上角即可分享
微信分享提示