假设链表为a->b->c->d 逆序后为d->c->b->a #include <stdio.h>#include <stdlib.h>typedef int Type;typedef struct Node{ Type data; struct Node *next;}Node;void insert(Type data,Node **head){//插入一个节点 Node *tmp = (Node*)malloc(sizeof(Node)); tmp->next=*head; tmp->data=data; *head=tmp;}void print_list(Node *head){//打印链表 Node *tmp=head; while(tmp){ printf("%d ", tmp->data); tmp=tmp->next; } printf("\n");}void revert_list(Node **head){//翻转链表 if(!*head)//空链表,无需翻转 return; Node *p=NULL,//前一个节点 *c=*head,//当前节点 *n=(*head)->next;//下一个节点 while(n){//如果没有到链表尾部 c->next=p;//逆序当前节点 p=c;//节点前进 c=n;//节点前进 n=n->next;//节点前进 } c->next=p; *head=c;}int main(){ Node *head=NULL; int a[5]={1,2,3,4,5}; for(int i=0;i<5;i++) insert(a[i],&head); print_list(head);//反序前输出 revert_list(&head);//反序 print_list(head);//反序后输出 return 0;} <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script> 阅读(978) | 评论(1) | 转发(0) | 0 上一篇:排序 下一篇:笔经&&面经 相关热门文章 链表队列的实现链表栈的实现单向链表的实现O(lnk) 时间内合并K个有序链表...单向链表操作中的二级指针的运... test123编写安全代码——小心有符号数...使用openssl api进行加密解密...一段自己打印自己的c程序...sql relay的c++接口 ChinaUnix & ITPUB社区12周年...ssh连接出现以下提示,求解...如何扩展MYSQL准备做一个大型门户,用户什么...gbk or utf8 给主人留下些什么吧!~~ zuii2008-10-25 00:23:18 编译能通过吗?很多变量都没定义啊 回复 | 举报 评论热议