单链表销毁的两种方式

在创建和新增申请单链表节点时,需要通过malloc函数手动申请内存空间。如果不对相应内存进行手动释放则会约积累越多,存在内存泄漏风险。

递归销毁

通过递归找到链表最后一个节点,依次释放,执行顺序从后向前

void funtion_Free(struct LNode *Node)
{if(P == NULL) {return;}DelListRecursion(P->next);/* * 1.free不会清理对应内存,需要手动将当前节点的指针域置空,此操作会递归修改整个链表,确保节点之间的联系被切断* 2.由于是递归修改,此处的P实际是上一层调用栈中的入参P->next,不能通过一级指针直接修改指针本身,所以P=NULL无意义*/free(P);P->next = NULL;return;
}执行顺序:
Node=0x55b625c340
Node=0x55b625c300
Node=0x55b625c2c0
Node=0x55b625c2e0
Node=0x55b625c320
Node=0x55b625c360
Node=0x55b625c2a0

遍历销毁

遍历单链表取出每个节点依次释放,执行顺序从前向后

void funtion_Free(struct LNode *Node)
{struct LNode *L;while(P) {L = P;P = P->next;free(L);L->next = NULL;}return;
}执行顺序:
Node=0x55693dc2a0
Node=0x55693dc360
Node=0x55693dc320
Node=0x55693dc2e0
Node=0x55693dc2c0
Node=0x55693dc300
Node=0x55693dc340

单链表销毁的两种方式相关推荐

  1. c语言双链表排序交换节点_图解:单链表翻转的三种方式!

    当我们在聊到链表反转的时候,一定说的都是单链表,双链表本身就具有前驱指针 Prev 和后续指针 next,无需进行翻转. 单链表反转,反转后的效果如下: 看起来很简单,只需要将单链表所有结点的 nex ...

  2. 将单链表翻转的两种方法

    单链表翻转很容易理解,例如: 输入: NODE1->NODE2->NODE3->NODE4->NODE5->NULL 输出: NODE5->NODE4->NO ...

  3. SpringBoot定时任务 - 集成quartz实现定时任务(单实例和分布式两种方式)

    最为常用定时任务框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不仅支持单实例方式还支持分布式方式.本文主要介绍Quartz,基础的Quartz的集成案例本,以及实现基于数 ...

  4. php 恶汉单例,单例模式的两种方式(恶汉式,懒汉式)

    单例模式的两种形式(恶汉式,懒汉式) 单例模式的特点:解决了一个类在内存的唯一性,这个类的对象只有一个. 写单例模式的步骤: 1. 私有修饰构造方法 2. 在本类的成员位置, new 自己类的对象 3 ...

  5. form表单提交数据的两种方式——submit直接提交、AJAX提交

    submit提交 form表单本身提供action属性,在action属性中填写数据提交地址后,点击submit类型的按钮即可将数据提交至指定地址,代码如下: <form action=&quo ...

  6. 单链表建立的两种方法 头插法和尾插法

    目录: 方法1:头插法 方法2:尾插法 方法1:头插法 基本思路: 定义一个链表类型的指针l,指针l指向的是链表的首地址,而不是链表的第一个数,指针l指向的下一个链表类型才是链表的第一个数,每次往链表 ...

  7. angularjs通过ng-change和watch两种方式实现对表单输入改变的监控

    angularjs通过ng-change和watch两种方式实现对表单输入改变的监控 直接上练习代码 <!DOCTYPE html> <html xmlns="http:/ ...

  8. Struts2-表单验证的两种方式

    1. Struts2中的输入校验 2. 编码方式校验   1) Action一定要继承自ActionSupport   2) 针对某个要进行校验的请求处理方法编写一个 public void vali ...

  9. 网页表单form中提交的两种方式

    本文是我本人在开发网页时,在表单中加入了button按钮,本来是用于jQuery点击相应事件的按钮,然后,但我点击button时,发现不是达到jQuery指定效果,原本以为class标签或者其他代码写 ...

最新文章

  1. Android开发:setAlpha()方法和常用RGB颜色表----颜色, r g b分量数值(int), 16进制表示 一一对应...
  2. idea 提示忽略大小写
  3. Reverse Sort 思维
  4. 一文看懂Transformer内部原理(含PyTorch实现)
  5. [零基础,全开源]基于web的远程深度学习服务搭建
  6. 转仁兄:Binary search and its variation
  7. 攀爬者(洛谷P5143题题解,Java语言描述)
  8. element的表格index自定义_vue+element-ui实现表格编辑的三种实现方式
  9. ES6新特性_ES6语法糖class介绍与初体验_就是个语法糖而已---JavaScript_ECMAScript_ES6-ES11新特性工作笔记033
  10. Java 实现奇数阶幻方的构造
  11. 在JMP中拆分数据集有烦恼?这些实用妙招试试看!
  12. unity3d游戏资源提取
  13. Ansible#Ansible-Jinja2模板介绍
  14. littlefs系列:Files
  15. 腾讯视频2019面试题目分享
  16. b区计算机211学校排名,b区211大学名单排名
  17. 调用百度人体分析api 实现人体分析
  18. 经典力学(动力学)——动量守恒定律与能量守恒定律
  19. 蓝牙连接音箱抓空包、HCI、sitalog
  20. sql存储过程语法详解

热门文章

  1. 喜讯|弥蒙高铁成功接入全国铁路网
  2. 饿了么网站订餐外卖系统功能介绍
  3. Gilbert Strang 《Introduction to Linear Algebra》 chap1 Introduction to Vectors 笔记
  4. java用arraylist求和_Java中ArrayList的使用
  5. 【视音频编程学习】开源音频加速方案Sonic、SoundTouch对比及实时处理音频的实验分析
  6. Java学习基本英语单词(持续更新)API
  7. 夜神双开器打开多个模拟器
  8. 极品英文翻唱歌曲--《谢谢你的爱》歌词俸上
  9. 前端面试题---html/css
  10. 天池大赛之工业蒸汽量预测(有史以来最全面)