Loading

6-1 单链表逆转 (20分)

本题要求实现一个函数,将给定的单链表逆转。

  • 核心代码
List Reverse( List L )
{
    List p, q;
    p = L;
    L = NULL;

    while(p)
    {
        q = p;
        p = q -> Next;
        q -> Next = L;
        L = q; 
    }
    return L;
}

  • 思路:

  • code

#include <stdio.h>
#include <stdlib.h>

typedef int ElementType;
typedef struct Node *PtrToNode;
struct Node {
    ElementType Data;
    PtrToNode   Next;
};
typedef PtrToNode List;

List Read(); /* 细节在此不表 */
void Print( List L ); /* 细节在此不表 */

List Reverse( List L )
{
    List p, q;
    p = L;
    L = NULL;

    while(p)
    {
        q = p;
        p = q -> Next;
        q -> Next = L;
        L = q; 
    }
    return L;
}

int main()
{
    List L1, L2;
    L1 = Read();
    L2 = Reverse(L1);
    Print(L1);
    Print(L2);
    return 0;
}

/* 你的代码将被嵌在这里 */
posted @ 2020-07-02 21:00  啊哈小张同学  阅读(113)  评论(0)    收藏  举报