目的:主要是练习c里面单链表的实现,递归思想复习;

#include <stdlib.h>
#include <stdio.h>typedef struct _Node{//定义单链表的节点int value;struct _Node *next;
}Node;Node* link(int len){//新建一个单链表int i=0;Node* head = (Node*)malloc(sizeof(Node));head->value = -1;Node* tail = head;for(;i<len;i++){Node* tmp = (Node*)malloc(sizeof(Node));tmp->value=i;tmp->next=NULL;tail->next=tmp;tail=tail->next;}return head;
}
void outputlink(Node* head){//输出一个单链表do{printf ( "%d ->", head->value );head = head->next;}while(head!=NULL);printf ( "\n" );
}void freelink(Node* head){//释放单链表申请的空间while(head!=NULL){Node* tmp = head->next;free(head);head = tmp;}
}Node* revlink(Node* head){//递归翻转单链表if(head == NULL) return NULL;if(head->next == NULL) return head;Node *p=head,*q=p->next;p->next = NULL;Node* ret = revlink(q);q->next = p;return ret;
}int main ( int argc, char *argv[] )
{Node* head = link(5);outputlink(head);outputlink(revlink(head));freelink(head);return EXIT_SUCCESS;
}       

转载于:https://www.cnblogs.com/McQueen1987/p/3554606.html

c语言,递归翻转一个单链表,c实现单链表相关推荐

  1. C语言实现了一个具有头结点的单链表(附完整源码)

    实现了一个具有头结点的单链表 有头结点的单链表 实现了一个具有头结点的单链表完整源码 有头结点的单链表 线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中的任 ...

  2. c语言单链表设计报告,单链表实验报告

    <数据结构>实验报告二 分校: 学号: 日期: 班级: 姓名: 程序名: L2311.CPP 一.上机实验的问题和要求: 单链表的查找.插入与删除.设计算法,实现线性结构上的单链表的产生以 ...

  3. 【LeetCode笔记】25. K个一组翻转链表(Java、链表、递归)

    文章目录 题目描述 思路 & 代码 更新 - 精简版 三刷 - 再更新版 题目描述 审题很重要..一开始以为是一组换两个,但是实际上是一组全部都要互换. 字节超高频题!要认真点记录 思路 &a ...

  4. C语言丨线性表(二):线性链表(单链表)

    线性表是由数据类型相同的个数据元素组成的有限序列,通常记为: 其中n为表长,n=0时称为空表:下标i表示数据元素的位序. 线性表的特点是组成它的数据元素之间是一种线性关系,即数据元素"一个接 ...

  5. c语言单链表功能,[数据结构]单链表(C语言)的各种功能

    06-03阅读200,000 + 链表是一种常见的基本数据结构,在此充分利用了结构指针. 链表可以动态存储和分配,即链表是一个功能非常强大的数组. 他可以在节点中定义多种数据类型,并可以根据需要随意添 ...

  6. 数据结构_Java_基于 线性表-单链表的初始化、逆序、去重、非递减序列的合并(开辟新链表先整体插入一个链表全部元素,再遍历另外一个链表寻找合适位置插入 、开辟新链表实现舍弃原链表)等操作实现

    写在前面 不久前学习了数据结构线性表-数组-链表的相关知识,用C/C++语言实现了 单链表的系列相关操作 .见往期博客: 数据结构实验2_C语言_基于顺序表的非递减有序表的合并.线性表元素的增.删.改 ...

  7. 【C语言位运算的应用】如何按bit位翻转一个无符号整型

    其实现思路如下: 将目标数值进行末尾比特位摘取,将所摘取的bit位放到一个相同类型的末尾,目标数值bit位右移,相同类型bit位左移. C语言的位运算符:     实现代码如下: #include & ...

  8. python链表中删除一个节点数据_python实现单链表中删除倒数第K个节点的方法

    本文实例为大家分享了python实现单链表中删除倒数第K个节点的具体代码,供大家参考,具体内容如下 题目: 给定一个链表,删除其中倒数第k个节点. 代码: class LinkedListAlgori ...

  9. (关于单链表的真题)已知一个带有表头结点的单链表...请设计一个尽可能高效的算法,查找链表中倒数第k个位置的结点。

    真题描述 已知一个带有表头结点的单链表,结点结构为 data next 假设该链表只给出了头指针head.在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点. 若查找成 ...

最新文章

  1. 卷积神经网络的一些规则
  2. sklearn数据预处理-scale
  3. ecshop简单三部实现导航分类二级菜单
  4. sts,eclipse里面配置tomcat
  5. 发现qq的mac输入法2.8,在终端全屏下输入不显示待选文字或单词
  6. Android基于mAppWidget实现手绘地图(三)--环境搭建
  7. 无监督学习与监督学习的区别
  8. Java JVM总结
  9. 华为与万达签订5G战略合作协议 推动5G商业场景应用
  10. 多输出模型的评价和模型预测
  11. python代码编写规范
  12. springMVC框架下JQuery传递并解析Json数据
  13. 「10」民主投票法——KNN的秘密
  14. 自学elastic search
  15. 按键脚本c语言,按键精灵脚本代码大全 按键精灵命令使用方法
  16. CI/DI持续集成部署
  17. 如何设计SaaS商业模式
  18. 联想z5可以刷鸿蒙系统吗,联想z5引用adb刷Project Treble通刷第三方rom教程(亲测成功)...
  19. GitHub压缩包下载URL
  20. 玉米社:SEM竞价推广预算设置方法

热门文章

  1. Vue项目中使用 路由导航守卫 处理页面的访问权限
  2. LeetCode 1209. 删除字符串中的所有相邻重复项 II(栈)
  3. LeetCode 304. 二维区域和检索 - 矩阵不可变(DP)
  4. IDEA连接mysql出现时区错误_idea连接数据库时区错误
  5. 微信小程序使用函数的方法
  6. linux强制停止压缩任务,6.25任务(linux压缩、打包命令:zip、tar)
  7. PAT乙类1008之数组元素循环右移问题
  8. 算法岗SSP offer收割指南!
  9. GBDT是如何成为推荐系统顶级工具人的?
  10. 快手搜索技术部招聘NLP算法工程师!