博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题16 反转链表
阅读量:2400 次
发布时间:2019-05-10

本文共 1916 字,大约阅读时间需要 6 分钟。

地址:http://ac.jobdu.com/problem.php?pid=1518

题目1518:反转链表

题目描述:

输入一个链表,反转链表后,输出链表的所有元素。

(hint : 请务必使用链表)

输入:

输入可能包含多个测试样例,输入以EOF结束。

对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000):代表将要输入的链表的个数。
输入的第二行包含n个整数t(0<=t<=1000000):代表链表元素。

输出:

对应每个测试案例,

以此输出链表反转后的元素,如没有元素则输出NULL。

样例输入:
51 2 3 4 50
样例输出:
5 4 3 2 1NULL
思路:

3个指针,分别指向当前遍历到的节点,它的前一个节点及后一个节点。

检查:

1、链表头指针为NULL

2、整个链表只有一个节点

注:代码含有头节点

#include 
#include
struct listNode { int data; listNode *next;};listNode* reverse(listNode *head){ if(head->next == NULL) return NULL; listNode *p, *q, *r; p = head; q = head ->next;//指向第一个节点 if(q->next == NULL)//只有一个节点,无需逆转 return head; r = q->next; while(r != NULL) { q ->next = p; if(p == head) q->next = NULL; p = q; q = r; r = r->next; } q ->next = p; head->next = q; return head;}int main(){ int n; while(scanf("%d", &n) != EOF) { listNode *head = (listNode *)malloc(sizeof(listNode)); head->data = 0; head->next = NULL; listNode *p, *q; q = head; for(int i = 0; i < n; i ++) { p = (listNode *)malloc(sizeof(listNode)); scanf("%d", &p->data); p->next = NULL; q->next = p; q = q->next; } p = reverse(head); if(p != NULL) { int flag = 0; while(p->next != NULL) { p = p->next; if(flag == 0) { printf("%d", p->data); flag = 1; } else printf(" %d", p->data); } printf("\n"); } else printf("NULL\n"); }}/************************************************************** Problem: 1518 Language: C++ Result: Accepted Time:150 ms Memory:2472 kb****************************************************************/

转载地址:http://kesob.baihongyu.com/

你可能感兴趣的文章
测试使用标准I/O进行Informix同时备份和恢复
查看>>
metalink
查看>>
顶点财经
查看>>
在SLES中如何修改主机名(zt)
查看>>
Install iSCSI target for Linux with kernel 2.6.14(zt)
查看>>
不胜人生一场醉
查看>>
在红帽Linux企业版中,使用什么iSCSI目标端软件?(zt)
查看>>
集群的应用实例(zt)
查看>>
关于redhat上iscsi的安装:iSCSI target HowTo on Enterprise Linux (RHEL4)
查看>>
新学一个单词cPanel
查看>>
什么是XAMPP (zt)
查看>>
使用 Linux 操作系统: Dell PowerVault RD1000 附录
查看>>
tmpwatch命令详解
查看>>
XAMPP安装(zt)
查看>>
如何在 Windows XP 上安装 WordPress 本地测试
查看>>
用 Logwatch 工具监控 Linux 系统 Log 日志(zt)
查看>>
优酷看钢铁侠
查看>>
docker学习1:CentOS Docker 安装
查看>>
docker学习3:Docker Hello World
查看>>
docker学习7:Docker 安装 PHP
查看>>