码迷,mamicode.com
首页 > 其他好文 > 详细

单链表逆置

时间:2017-07-14 23:59:03      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:malloc   head   space   bsp   ever   for   while   链表   return   

重写单链表逆置,熟能生巧~

 

#include <iostream>
#include <cstdlib>

using namespace std;

typedef struct List{

    int num;
    struct List *next;

}ListNode,*pListNode;

void display(ListNode *pHead)
{

    while(pHead)
    {
        cout<<pHead->num<<"--";
        pHead = pHead->next;
    }

    cout<<endl;
}

ListNode* ReverseListNode(ListNode *pHead)
{
    ListNode* curNode = pHead;
    ListNode* preNode = pHead->next;
    ListNode* nextNode = preNode->next;
    curNode->next = NULL;
    while(nextNode)
    {
        preNode->next = curNode;
        curNode = preNode;
        preNode = nextNode;
        nextNode = nextNode->next;
    }

    preNode->next = curNode;

    return preNode;
}


int main()
{
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    ListNode* pHead = (struct List*)malloc(sizeof(struct List));
    pHead->num = 0;
    pHead->next = NULL;

    for(int i = 0; i < 10; i++)
    {
         ListNode *pNode = (struct List*)malloc(sizeof(struct List));
         pNode->num = arr[i];
         pNode->next = NULL;

         pNode->next = pHead->next;
         pHead->next = pNode;

    }

    ListNode* pTemp = pHead;

    while(pTemp)
    {
        cout<<pTemp->num<<"--";
        pTemp = pTemp->next;
    }

    cout<<endl;
    ListNode* pTemp2 = ReverseListNode(pHead);
    while(pTemp2)
    {
        cout<<pTemp2->num<<"--";
        pTemp2 = pTemp2->next;
    }

    cout<<endl;

    return 0;

}

 

单链表逆置

标签:malloc   head   space   bsp   ever   for   while   链表   return   

原文地址:http://www.cnblogs.com/xshang/p/7173010.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!