数据结构与算法 经典例题讲解
文章平均质量分 83
数据结构与算法的C语言刷题系列
倔强的石头_
百尺竿头 更进一步
展开
-
【数据结构与算法 经典例题】随机链表的复制(图文详解)
要完成一个带随机指针的链表的复制,有一个巧妙的办法:分三步走——完成节点数据拷贝,完成节点的随机指针拷贝,完成节点的next指针拷贝原创 2024-06-05 00:35:17 · 936 阅读 · 17 评论 -
【数据结构与算法 经典例题】反转链表(图文详解)
通过三个指针n1,n2,n3来实现链表的反转原创 2024-06-03 18:59:47 · 639 阅读 · 12 评论 -
【数据结构与算法 经典例题】链表的回文结构(图文详解)
回文结构(Palindromic structure)是指一个序列或字符串从前往后读和从后往前读是相同的。计算机科学中,回文结构可以出现在各种数据结构中,如字符串、数组等。对于字符串来说,判断一个字符串是否为回文字符串是一个常见的问题。判断方法是从字符串的两端开始比较字符是否相等,如果都相等,则继续比较下一对字符,直到中间位置。如果在任何时刻存在一对不相等的字符,则该字符串不是回文。对于数组来说,直接采取上述方法便可以判断是否是回文结构。但对于单链表来说,则是行不通的,因为单链表只能顺序访问,不能原创 2024-06-04 22:24:24 · 1360 阅读 · 8 评论 -
【数据结构与算法 经典例题】返回单链表的倒数第 k 个节点
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。方法一:计数器方式先遍历链表,求出链表长度count。倒数第k个节点,就是正数第count-k+1个节点。再次遍历链表,找到该节点,返回数据方法二:双指针方式定义两个指针slow和fast,初始都指向第一个节点初始fast指针先走k步,然后slow指针和fast指针每次各走一步,当fast指针指向空时,slow指针所指向的节点就是倒数第k个节点原创 2024-05-29 00:05:01 · 674 阅读 · 20 评论 -
【数据结构与算法 经典例题】相交链表求交点
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。方法一:双循环对比法(暴力解法效率较低,不建议采用)方法二: 双指针法原创 2024-05-27 00:15:47 · 597 阅读 · 16 评论 -
【数据结构与算法 刷题系列】移除链表元素
想要移除链表的指定元素,有两种方式第一种方式 :删除原链表的指定元素第二种方式 :创建新链表 尾插不属于指定元素的节点原创 2024-05-25 23:16:29 · 514 阅读 · 3 评论 -
【数据结构与算法 刷题系列】合并两个有序链表
合并两个有序链表问题的一个简单高效的解题思路——创建一个新的链表,将两个链表的节点元素按大小顺序逐个尾插到新的链表中,最后返回新链表的首节点地址原创 2024-05-14 00:06:22 · 686 阅读 · 11 评论 -
【数据结构与算法 刷题系列】环形链表的约瑟夫问题
解决思路是用环形链表来模拟报数和离开解决问题分三步1. 实现申请单个环形链表的方法2.创建环形链表3.对链表循环遍历,实现报数和删除,返回最后剩下的节点的编号原创 2024-05-13 20:31:42 · 1098 阅读 · 9 评论 -
【数据结构与算法 刷题系列】求链表的中间结点
想要求得链表的中间节点,有两种方法,分别是计数器方式和快慢指针方式计数器方式逻辑简单实现简单,效率低快慢指针方式对逻辑和细节要求较高,但效率也很高原创 2024-05-09 00:51:55 · 990 阅读 · 11 评论