链表反转,C++实现
1 // To Compile and Run: g++ invert_list.cc -std=c++11 -Wall -O3 && ./a.out 2 3 4 #include <iostream> 5 #include <vector> 6 7 8 class ListNode { 9 public: 10 int data; 11 ListNode *pNext; 12 13 ListNode() 14 : data(0) 15 , pNext(nullptr) {} 16 ListNode(int i) 17 : data(i) 18 , pNext(nullptr) {} 19 }; 20 21 22 ListNode *InvertList(ListNode *_pList) { 23 ListNode *_pPrevious = nullptr; 24 while (_pList != nullptr) { 25 ListNode *tmpPtrNext = _pList->pNext; 26 27 _pList->pNext = _pPrevious; 28 29 _pPrevious = _pList; 30 _pList = tmpPtrNext; 31 } 32 33 return _pPrevious; 34 } 35 36 int main(int argc, char const *argv[]) { 37 const std::vector<int> arr { 38 1, 2, 3 39 }; 40 ListNode * const ROOT_PTR = new ListNode(); 41 ListNode *pList = ROOT_PTR; 42 for (int i: arr) { 43 pList->pNext = new ListNode(i); 44 pList = pList->pNext; 45 } 46 for (ListNode *p = ROOT_PTR->pNext; p != nullptr; p = p->pNext) { 47 std::cout << p->data << "\t"; 48 } 49 std::cout << "\n"; 50 51 pList = ROOT_PTR->pNext; 52 ListNode *pNewRoot = InvertList(pList); 53 for (ListNode *p = pNewRoot; p != nullptr; p = p->pNext) { 54 std::cout << p->data << "\t"; 55 } 56 std::cout << "\n"; 57 58 return 0; 59 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)