zoukankan      html  css  js  c++  java
  • 单链表逆置

    #include<iostream>
    using namespace std;
    const int N=6;
    typedef int DataType;//类型定义
    typedef struct node{ //单链表
          DataType data;
       struct node* next;
    }LinkedNode,*LinkList;
    /****由数组创建单链表****/
    LinkList CreateList(DataType a[N])
    {
     LinkedNode* ListHead=new LinkedNode();
     ListHead->data=a[0];
     ListHead->next=NULL;
     for(int i=N-1;i>=1;i--)
     {
      LinkedNode* p=new LinkedNode();
      p->data=a[i];
         p->next=ListHead->next;
      ListHead->next=p;
     }
     return ListHead;
    }
    /****输出单链表****/
    void PrintList(LinkList ListHead)
    {
     if(NULL==ListHead)cout<<"The List is empty!"<<endl;
     else
     {
      LinkedNode* p=ListHead;
      while(p!=NULL)
      {
       cout<<p->data<<" ";
       p=p->next;
      }
      cout<<endl;
     }
    }
    void ReverseList(LinkedNode* pCur,LinkList& ListHead)
    {
     if( (NULL==pCur)||(NULL==pCur->next) )
     {
      ListHead=pCur;
     }
     else
     {
      LinkedNode* pNext=pCur->next;
      ReverseList(pNext,ListHead); //递归逆置后继结点
      pNext->next=pCur;            //将后继结点指向当前结点。
      pCur->next=NULL;
     }
    }
    int main()
    {
     int a[N]={1,2,3,4,5,6};
     LinkedNode* list=CreateList(a);
        PrintList(list);
     LinkedNode*pTemp=list;
     ReverseList(pTemp,list);
     PrintList(list);
     return 0;
    }

  • 相关阅读:
    Dubbo使用
    JVM内存分配及GC简述
    深入理解ThreadLocal
    Java的Timer定时器
    https与http的区别
    SpringBoot微服务
    Java的BIO,NIO,AIO
    Java常量池
    Java中的值传递与引用传递
    面向对象三大特征及代码优化七大原则
  • 原文地址:https://www.cnblogs.com/lanseweilai/p/5120217.html
Copyright © 2011-2022 走看看