<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <h4>说明</h4>
讯享网
最近准备学习算法,在b站上看到左程云老师算法讲解,感觉非常透彻,跟着学习的时候,顺便将笔记分享出来,如果存在错误还望指正。
本次笔记观看的视频链接地址:https://www.bilibili.com/video/BV1N94y1C7az/?spm_id_from=333.999.0.0,有兴趣的同学可以关注一下左老师~
话不多说直奔主题
单链表节点的长相
单链表的长相

链表反转
做一个实现单链表反转的方法,这个方法的参数需要是指向链表头节点的变量,命名为head
例如:1 -> 2 -> 3 -> Null
此时这个head就指向于1节点
当链表反转之后应该这样 3 -> 2 -> 1 -> Null
这时候返回3节点的位置作为新的头部

原来是从1节点用起,现在反转函数必须要有一个返回值代表新的头部能走下去。
实现代码
讯享网
图解代码
初始化状态

第一次循环 head -> 1节点


讯享网


讯享网

第二次循环 head -> 2节点

讯享网



讯享网

第三次循环 head -> 3节点

讯享网


讯享网

head -> Null
while判断条件head为Null,跳出循环,此时的pre指向3节点,返回pre就得到想要的结果。如果单链表节点多起来,也是一样的逻辑。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/186384.html