• 链表反转


    就直接贴代码了:

    #include <iostream>
    #include <ctime>
    #include <cstdlib>
    using namespace std;

    #define NN 1

    struct node
    {
     int value;
     node * next;
     node(int v = -1, node *nxt = NULL) : value(v),next(nxt){}
    };

    node* reverse(node * ); //直接使用 node 代表这个结构体
    node * make_link();
    void display(node *);

    int main()
    {

     node* head = make_link();
     display(head);
     head = reverse(head);
     display(head);
     return 0;
    }

    node* reverse(node *head)
    {
     node *pre, *cur, *post;
     if(!head || !head->next)//空表或者只有一个节点的表不用反转
      return head;

     pre = head;       ///除了头还需要另外两个辅助变量
     cur = pre->next;

     while(cur)
     {
      post = cur->next;
      cur->next = pre;
      pre = cur;
      cur = post;
     }
     head->next = NULL;
     return pre;
    }
    node * make_link()
    {
     srand(time(NULL));
     node *head = new node();
     node *cur = head;
     for(int i= 0; i < 9; i++)
     {
      cur->value =  rand() % 10;
      cur->next = new node();
      cur = cur->next;
      cur->next = NULL;
     }
        cur->value = rand() % 10;
     return head;
    }
    void display(node *head)
    {
     node *cur = head;
     int Nodenum = 0;
     while(cur)
     {
      cout << cur->value << " " ;//<< cur->next<<" \n ";
            Nodenum++;
      cur = cur->next;
     }
     cout << endl;
    #ifdef NN
     cout << Nodenum<<endl;
    #endif
    }

  • 相关阅读:
    hbase存储优化
    cloudera manager下phoenix的安装
    Cloudera manager的服务安装以及spark升级到2.2
    redis学习总结
    kylin基础概念和基础性能优化
    mycat使用注意事项
    kylin2.0环境搭建
    ETL实践--kettle转到hive
    集成 SOLR 到 TOMCAT 中(傻瓜教程)
    局域网ip扫描
  • 原文地址:https://www.cnblogs.com/zhuyp1015/p/2508403.html
Copyright © 2020-2023  润新知