【数据结构】-线性表-链表 熟练度max=3(不建立新节点,使链表L倒序)
来源:互联网 发布:张艺谋奥运会知乎 编辑:程序博客网 时间:2024/05/02 06:11
要求不建立新节点,使链表L倒序
反转前:
1 2 3 4 5 6 7 8 9 10
反转后:
10 9 8 7 6 5 4 3 2 1
#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct LNode{ int data; struct LNode *next;}LNode;void saveListnext(LNode *&L,int x[])//尾插{ L = (LNode *)malloc (sizeof(LNode)); L->next=NULL; LNode *q,*s; q=L; for(int i=0;i<10;i++) { s=(LNode *)malloc (sizeof(LNode)); s->data = x[i]; q->next=s; q=q->next; } q->next=NULL;}void printList(LNode *L)//输出{ LNode *q; q=L->next; int i=0; while(q!=NULL) { if(i++) { putchar(' '); } printf("%d",q->data); q=q->next; } printf("\n");}void reverseList(LNode *&L)//头插即可反转{ LNode *q,*s; q=L->next;//必须指向L的下一个节点,否则下一步L->next=NULL会让q变成空表 L->next=NULL; while(q!=NULL) { s=q->next;//一定要放在第一句,不能放在倒数第二句,因为头插之后,q的位置发生了变化,s不是指向期望的值 q->next=L->next; L->next=q; //s=q->next; q=s; }}int main(void){ LNode *L; int x[10]={1,2,3,4,5,6,7,8,9,10}; saveListnext(L,x); printf("反转前:\n"); printList(L); printf("反转后:\n"); reverseList(L); printList(L); return 0;}
0 0
- 【数据结构】-线性表-链表 熟练度max=3(不建立新节点,使链表L倒序)
- 【数据结构】-线性表-链表 熟练度max=6(利用递归倒序输出L中的值域)
- 【数据结构】-线性表-链表 熟练度max=7(链表差集)
- 【数据结构】-线性表-链表 熟练度max=2
- 【数据结构】-线性表-链表 熟练度max=4(split)
- 【数据结构】-线性表-链表 熟练度max=8(考研真题1)
- 【数据结构】-线性表-顺序表 熟练度max=1
- 【数据结构】-线性表-顺序表 熟练度max=5(用一个变量实现min和循环变量i的功能)
- 数据结构【线性表(二)链表】项目一--建立单链表
- 数据结构 线性表 建立单链表(头插法)
- C语言基本数据结构之一(线性链表的增,删,改,查及倒序)
- 数据结构—2208: 交换节点(线性表)
- 数据结构 线性表 建立循环链表
- 数据结构 线性表 建立单链表 尾插法
- 【OJ】(二)---L---线性表
- 熟练度
- 数据结构-线性表-链表
- 数据结构-线性表-链表
- 安卓OkHttp封装
- poj_1961 Period(KMP)
- 自定义控件:流式布局
- Spring Boot 入门
- ISO8583报文中的编、解码总结
- 【数据结构】-线性表-链表 熟练度max=3(不建立新节点,使链表L倒序)
- android7.1 保存图片到系统图库
- windows环境下编译skia
- 多线程情况下如何捕获线程中的异常?
- 抽象类(abstract)和接口(interface)的区别
- 利用Jenkins+Phantomas进行前端性能自动化测试
- 《凤凰项目》读书笔记一
- 内核控制 上下文切换、进入和退出临界区.....
- 与自己交流最难能可贵