zoukankan      html  css  js  c++  java
  • 链表反转

    就直接贴代码了:

    #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
    }

  • 相关阅读:
    81. Search in Rotated Sorted Array II (Array; Divide-and-Conquer)
    LeetCode Word Ladder
    LeetCode Word Search II
    LeetCode Invert Binary Tree
    LeetCode Implement Stack using Queues
    Bash:字符串操作
    LeetCode Basic Calculator
    LeetCode Rectangle Area
    Java 远程调试
    LeetCode Count Complete Tree Nodes
  • 原文地址:https://www.cnblogs.com/zhuyp1015/p/2508403.html
Copyright © 2011-2022 走看看