题目1518:反转链表
来源:互联网 发布:淘宝版网页版登录 编辑:程序博客网 时间:2024/05/17 12:54
- 题目描述:
输入一个链表,反转链表后,输出链表的所有元素。
(hint : 请务必使用链表)
- 输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000):代表将要输入的链表的个数。
输入的第二行包含n个整数t(0<=t<=1000000):代表链表元素。
- 输出:
对应每个测试案例,
以此输出链表反转后的元素,如没有元素则输出NULL。
代码:
#include<stdio.h>#include<stdlib.h>typedef struct Link{int data;struct Link *next;}Node;//头插法翻转不带头结点的链表 Node *reverse(Node *head){Node *p,*q;if(head->next != NULL){p = head->next;head->next = NULL;}while(p != NULL){q = p->next;p->next = head;head = p;p = q;}return head;}//打印不带头结点的链表 void print(Node *head){Node *p = head;while(p != NULL){if(p == head)printf("%d",p->data);else printf(" %d",p->data);p = p->next;}printf("\n");}int main(){int n;while(scanf("%d",&n) != EOF){if(n == 0)printf("NULL\n");else{//构建不带头结点的链表 Node *head,*p,*s;head = (Node *)malloc(sizeof(Node));scanf("%d",&head->data);head->next = NULL;p = head;for(int i = 1; i < n; i++){s = (Node *)malloc(sizeof(Node));scanf("%d",&s->data);p->next = s;p = s;}p->next = NULL;//翻转链表 print(reverse(head));}}}
0 0
- 题目1518:反转链表
- 题目1518:反转链表
- 题目1518:反转链表
- 题目1518:反转链表
- 题目1518:反转链表
- 题目1518:反转链表
- 题目1518:反转链表
- 题目1518:反转链表
- 题目1518:反转链表
- 题目1518:反转链表
- 题目1518:反转链表-九度
- 剑指Offer题目1518:反转链表
- 题目16:反转链表
- 算法题目-反转链表
- 算法题目---反转链表
- 剑指offer-题目1518:反转链表 (2014.1.2)
- 九度_题目1518:反转链表
- 九度OJ-题目1518:反转链表
- 精通安卓性能优化-第五章(二)
- swf破解扫盲教程-内存抓取法破解swf加壳
- C#反射之Assembly.Load,Assembly.LoadFile 与 Assembly.LoadFrom方法介绍
- FZU 2147 A-B Game
- 验证java 递增不是原子操作
- 题目1518:反转链表
- OJ D
- 2014MadCon厦门分享会-笔记(下)
- 两个老外婆过河,函数递归解法
- 根据设备及设备语言去访问不同的网址。(核心:navigator.userAgent、navigator.language)
- zookeeper使用和原理探究
- Spring中DispacherServlet、WebApplicationContext、ServletContext的关系
- 5-3. 求a的连续和(15)
- 题目1519:合并两个排序的链表