![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法 经典例题讲解
文章平均质量分 84
数据结构与算法的C语言刷题系列
倔强的石头_
百尺竿头 更进一步
展开
-
【数据结构与算法 经典例题】使用栈实现队列(图文详解)
栈和队列在数据结构上是两种完全不同的类型(栈是后进先出,队列是先进先出),解决问题的关键就在于如何巧妙地利用两个栈的后进先出的特性来模拟队列先进先出的行为。我们定义两个栈,stack1和stack2。其中一个栈(例如stack1)用于入队操作,另一个栈(例如stack2)用于出队操作。原创 2024-06-24 00:05:01 · 1109 阅读 · 22 评论 -
【数据结构与算法 刷题系列】求带环链表的入环节点(图文详解)
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。原创 2024-06-17 22:25:04 · 1145 阅读 · 17 评论 -
【数据结构与算法 刷题系列】判断链表是否有环(图文详解)
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。这道题的解题思路主要涉及到“快慢指针”或“双指针”的方法。这种方法的关键在于,如果存在环,那么快指针最终会追上慢指针。原创 2024-06-17 22:21:46 · 992 阅读 · 4 评论 -
【数据结构与算法 经典例题】括号匹配问题
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。括号匹配问题是一个比较有实际意义的问题,问题要求将三种类型括号匹配,其中包括顺序匹配和数量匹配。使用栈的后进先出结构可以很好的解决这个问题原创 2024-06-11 00:07:39 · 782 阅读 · 20 评论 -
【数据结构与算法 经典例题】随机链表的复制(图文详解)
要完成一个带随机指针的链表的复制,有一个巧妙的办法:分三步走——完成节点数据拷贝,完成节点的随机指针拷贝,完成节点的next指针拷贝原创 2024-06-05 00:35:17 · 1219 阅读 · 18 评论 -
【数据结构与算法 经典例题】反转链表(图文详解)
通过三个指针n1,n2,n3来实现链表的反转原创 2024-06-03 18:59:47 · 692 阅读 · 13 评论 -
【数据结构与算法 经典例题】链表的回文结构(图文详解)
回文结构(Palindromic structure)是指一个序列或字符串从前往后读和从后往前读是相同的。计算机科学中,回文结构可以出现在各种数据结构中,如字符串、数组等。对于字符串来说,判断一个字符串是否为回文字符串是一个常见的问题。判断方法是从字符串的两端开始比较字符是否相等,如果都相等,则继续比较下一对字符,直到中间位置。如果在任何时刻存在一对不相等的字符,则该字符串不是回文。对于数组来说,直接采取上述方法便可以判断是否是回文结构。但对于单链表来说,则是行不通的,因为单链表只能顺序访问,不能原创 2024-06-04 22:24:24 · 1792 阅读 · 8 评论 -
【数据结构与算法 经典例题】返回单链表的倒数第 k 个节点
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。方法一:计数器方式先遍历链表,求出链表长度count。倒数第k个节点,就是正数第count-k+1个节点。再次遍历链表,找到该节点,返回数据方法二:双指针方式定义两个指针slow和fast,初始都指向第一个节点初始fast指针先走k步,然后slow指针和fast指针每次各走一步,当fast指针指向空时,slow指针所指向的节点就是倒数第k个节点原创 2024-05-29 00:05:01 · 690 阅读 · 20 评论 -
【数据结构与算法 经典例题】相交链表求交点
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。方法一:双循环对比法(暴力解法效率较低,不建议采用)方法二: 双指针法原创 2024-05-27 00:15:47 · 651 阅读 · 16 评论 -
【数据结构与算法 刷题系列】移除链表元素
想要移除链表的指定元素,有两种方式第一种方式 :删除原链表的指定元素第二种方式 :创建新链表 尾插不属于指定元素的节点原创 2024-05-25 23:16:29 · 531 阅读 · 6 评论 -
【数据结构与算法 刷题系列】合并两个有序链表
合并两个有序链表问题的一个简单高效的解题思路——创建一个新的链表,将两个链表的节点元素按大小顺序逐个尾插到新的链表中,最后返回新链表的首节点地址原创 2024-05-14 00:06:22 · 702 阅读 · 12 评论 -
【数据结构与算法 刷题系列】环形链表的约瑟夫问题
解决思路是用环形链表来模拟报数和离开解决问题分三步1. 实现申请单个环形链表的方法2.创建环形链表3.对链表循环遍历,实现报数和删除,返回最后剩下的节点的编号原创 2024-05-13 20:31:42 · 1117 阅读 · 9 评论 -
【数据结构与算法 刷题系列】求链表的中间结点
想要求得链表的中间节点,有两种方法,分别是计数器方式和快慢指针方式计数器方式逻辑简单实现简单,效率低快慢指针方式对逻辑和细节要求较高,但效率也很高原创 2024-05-09 00:51:55 · 1009 阅读 · 11 评论