IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:链表

共 3 篇相关文章

IT 累计浏览 7,006

15道使用频率极高的基础算法题

这篇讲的是程序员面试中常见的15道基础算法题的思路解析与实现。作者从链表操作、数组处理、二叉树和栈队列等经典数据结构入手,详细拆解了合并排序、删除节点、查找倒数第K个节点、反转链表等高频考点。文章不仅列出了问题,更关键的是提供了具体的解题策略,比如用双指针在O(1)时间内删除节点,通过两个栈实现队列,以及利用后序遍历构建二叉树镜像等。每道题都附有清晰的C++代码示例和关键步骤注释,将抽象的算法逻辑转化为了可运行的实现。这些题目覆盖了排序、查找、递归、位运算等多个核心算法思想,对于夯实编程基础和准备技术面试都是不错的实战参考。

IT 累计浏览 2,508

大整数乘法

这篇讲的是大整数乘法的经典实现思路与代码实践。作者用一个整形链表来存储大整数的每一位,核心计算部分通过两层循环遍历乘数与被乘数,将每对数字的乘积累加到结果链表的对应位置上,并通过一个递归辅助函数处理进位。 实现的亮点在于对基本数据结构的运用:自定义的BigInt结构体包含了数值、指针和符号位,通过重载运算符(如乘法、输入输出流)让操作更直观。不过作者也坦诚地指出了代码的几处“非典型”设计:乘法运算返回指针而非对象,递归计算存在栈溢出风险,以及指针管理上不够严谨。这些反思本身也是很有价值的经验点。 从代码片段可以看到具体的实现细节,比如如何构建数字链表、处理进位和负号。整体上,这是一次从零开始构建大整数运算的扎实尝试,既展示了基本算法,也揭示了手动管理内存时需要面对的复杂性。

IT 累计浏览 4,693

一道不错的算法题-判断链表是否有环

这篇讲的是作者从朋友的一道面试题说起,介绍了链表成环检测的经典解法。文章没有直接抛出答案,而是先引导思考——如何判断一个链表是否成环? 作者对比了两种主流思路。一种是使用哈希表记录遍历过的节点,虽然直观但空间复杂度为 O(n)。更巧妙的是快慢指针法:让快指针每次走两步、慢指针每次走一步,如果存在环,它们终会相遇。这个方法只用常数空间,背后的数学原理也值得细品。 文章把一个经典问题讲得清晰透彻,既点出了不同解法的权衡,也让人体会到算法设计中“空间换时间”之外的另一条优雅路径。这种问题在面试和实际开发中都很常见,值得花时间理解透彻。