0
点赞
收藏
分享

微信扫一扫

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


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

函数接口定义:

List Reverse( List L );

List结构定义如下:

typedef struct Node *PtrToNode;
struct Node {
    ElementType Data; /* 存储结点数据 */
    PtrToNode   Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */

L是给定单链表,函数Reverse要返回被逆转后的链表。

裁判测试程序样例:

#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 );

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

/* 你的代码将被嵌在这里 */

输入样例:

5
1 3 4 5 2

输出样例:

1
2 5 4 3 1



 

  • 编译器:gcc
  • 时间限制:400ms
  • 内存限制:64MB
  • 代码长度限制:16kB
  • 判题程序:系统默认
  • 作者:陈越
  • 单位:浙江大学


题目判定



List Reverse(List head)
   
 {
   
     if(NULL==head)
   
  
   
         return head;
   
     List p,q,r;
   
     
   
     p = head;
   
     q = head->Next;
   
     head->Next = NULL;
   
     while(q){
   
         r = q->Next;
   
         q->Next = p;
   
         p = q;
   
         q = r;
   
     }
   
     head=p;
   
     return head;
   
 }

举报

相关推荐

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

*链表逆转

6-10 单链表分段逆转 分数 15

4-1 线性代数

06链表逆转

链表的逆转

4-1 Java Web项目环境准备

0 条评论