【数据结构篇】链表(c语言)
---
title: 【数据结构篇】链表
date: 2022-02-15 10:32:54
tags:
- 数据结构
- 链表
- C语言
categories:
- 数据结构
- 链表
cover: https://cdn.jsdelivr.net/gh/Skye-rs/CDN/cover/cover3.jpg
【数据结构篇】链表
设计链表
- 在链表类中实现这些功能:
·get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。
·addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第一个节点。
·addAtTail(val):将值为 val 的节点追加到链表的最后一个元素。
·addAtIndex(index,val):在链表中的第 index 个节点之前添加值为 val 的节点。如果 index 等于链表的长度,则该节点将附加到链表的末尾。如果 index 大于链表长度,则不会插入节点。如果index小于0,则在头部插入节点。
·deleteAtIndex(index):如果索引 index 有效,则删除链表中的第 index 个节点。
- 代码示例如下
环形链表
- 可以用快慢指针判断是否有环(有环返回真,无环返回假)
- 如果要返回入环的第一个结点呢?
可以这样分析:
1 慢指针走过的路程为a(头结点到环入口的距离)+b(慢指针在环内的距离)
2 快指针走过的路程为a+b+c(相遇点到换入口的距离)+b
3 因为快指针速度是慢指针的两倍,所以可以导出a=c
4 所以只要再安排一个位于头结点的指针和慢指针同时出发,它们的相遇位置即为环入口
回文链表
持续更新中
__EOF__
本文作者:紫炁
本文链接:https://www.cnblogs.com/skye-rs/p/16001009.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/skye-rs/p/16001009.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下