17 - 01 - 02 单链表的逆置
2016-12-25 15:04
281 查看
/*单链表的逆置 是面试官非常青睐的题,这个题可以看出面试者对链表和指针的操作*/ /*代码如下*/ #include <stdio.h> #include <stdlib.h> typedef struct node{ int data; struct node*next; } Node; //创建链表 Node *CreatList(void) { int i, n; Node *head, *p, *q; head = NULL; printf("输入要建立的链表长度:\n"); scanf("%d",&n); printf("输入数据:\n"); for(i=0; i<n; ++i) { p = (Node *)malloc(sizeof(Node)); scanf("%d", &p->data); if(!p) exit (0); if(!head) //先要执行这一步让head不为空 q = head = p; else { q->next = p; //q = head;第一个节点建立。 q = p; //1、 } } *****思想: /*用p,q指向单链表中相邻的两节点,将r指向q的下一个结点,然后同步后移。当q=NULL时,表示指向原单链表的尾结点,将L的next域指向p即可*/ //链表的逆置 Node *ReverseList(Node *head) { Node *p, *q, *r; p = head; q=r=NULL; while(p) { q = p->next; //最后一趟循环,p->next==NULL p->next = r; printf("%p\n",r); printf("%p\n",p->next); r = p; printf("%p\n\n",r); p = q; } return r; }
相关文章推荐
- 17 - 02 - 01 计算机网络(22)(TCP连接的拆除-简单理解)
- 17_7_14:逆置单链表+查找单链表的倒数第K个节点+非常规方法实现Add函数
- 17 - 02 - 27 图解HTTP(01)
- GZIP压缩原理分析(17)——第五章 Deflate算法详解(五08) 算法分析(02) 格式说明(01) 块首部
- 实现单链表的就地逆置
- 02_Android应用界面编程_01_视图(View)组件
- linux下生成00 01 02..99的这些数,怎么生成
- 【零基础学习iOS开发】【01-前言】02-准备
- (原创)c#学习笔记04--流程控制01--布尔逻辑02--按位运算符
- java 单链表的逆置
- 从无头单链表中删除节点及单链表的逆置
- 【收藏】本周ASP.NET英文技术文章推荐[01/27 - 02/02]:负载均衡、State Server、Web Deployment、Data Entry Suite、GridView、Access、SQL Server、MSDE
- day_01至day_02
- 培训讲义--AJAX Training(02_01)
- (原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义01--对象的含义02--方法
- 02---jsp内置对象01(内置对象简介及四种属性范围)
- 逆置单链表
- 10.9逆置单链表
- 单链表的逆置(头插法)
- struts2_day02_01-今天内容介绍_02-结果页面配置-全局结果页面