zoukankan      html  css  js  c++  java
  • 链表反转,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 << "	";
    48     }
    49     std::cout << "
    ";
    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 << "	";
    55     }
    56     std::cout << "
    ";
    57 
    58     return 0;
    59 }
  • 相关阅读:
    PHP命名空间
    php各个版本的区别
    MySQL的读写分离---主从复制、主主复制
    redis的安装和php的redis扩展
    php的设计模式
    git命令详情
    memcache和redis的对比
    mysql性能优化
    MySQL的分区、分表、集群
    nginx的反向代理和负载均衡
  • 原文地址:https://www.cnblogs.com/xiaochou/p/13663909.html
Copyright © 2011-2022 走看看