【数据结构OJ题】复制带随机指针的链表
1. 题目描述 2. 思路分析 此题可以分三步进行: 拷贝链表的每一个结点,拷贝的结点先链接到被拷贝结点的后面。 复制随机指针的链接:拷贝结点的随机指针指向被拷贝结点随机指针的下一个位置。 拆解链表,把拷贝的链表从原链表中拆解出来。 3. 代码实现 /** * Definition for a Node. * struct Node { * int v...
【数据结构OJ题】环形链表II
原题链接:https://leetcode.cn/problems/linked-list-cycle-ii/description/ 目录 题目描述 思路分析 代码实现 1. 题目描述 2. 思路分析 如果有小伙伴不了解环形链表,可以先看看这篇文章: https://blog.csdn.net/m0_62531913/article/details/1...
【数据结构OJ题】环形链表
1. 题目描述 2. 思路分析 整体思路:定义快慢指针fast,slow,如果链表确实有环,fast指针一定会在环内追上slow指针。 即慢指针一次走一步,快指针一次走两步,两个指针从链表起始位置开始运行,如果链表带环则一定会在环中相遇,否则快指针率先走到链表的末尾。 我们简化一下这个问题,用一个线段表示前面的不带环部分的链表,用一个圆圈表示带环部分的链表 。 slow一次走...
【数据结构OJ题】相交链表
原题链接:https://leetcode.cn/problems/intersection-of-two-linked-lists/description/ 目录 题目描述 思路分析 代码实现 1. 题目描述 2. 思路分析 看到这道题,很容易想到的方法就是暴力求解,就是将一个链表的每个结点的地址分别和另外一个链表的每个结点的地址进...
【数据结构OJ题】链表分割
1. 题目描述 2. 思路分析 整体思路:创建两个链表,分别存放小于x的结点和大于等于x的结点,分别进行尾插。 这道题目使用哨兵位会更简单,原因如下(能避开很多为空的情况): (1)使用哨兵位就不需要考虑两个链表尾插时为空的情况。 (2)两个链表链接时也不需要考虑是否为空的情况。 (3)哪怕有一个链表为空,也有哨兵位的头结点,正常链接即可。 我们用结构体指针lhead和l...
【数据结构OJ题】链表的回文结构
1. 题目描述 2. 思路分析 在做这道题之前,我们首先得知道什么是“回文”。 回文就是指正读和反读都相同的字符序列为“回文”,如“abba”、“abccba”、12321、123321是“回文”,“abcde”和“ababab”则不是“回文”。 知道了回文的意思后,我们开始分析题目! 先找到中间结点,然后...
【数据结构OJ题】合并两个有序链表
1. 题目描述 2. 思路分析 可以先创建一个空链表,然后依次从两个有序链表中选取最小的进行尾插操作。(有点类似双指针的操作~) 我们可以用不带哨兵位和带哨兵位两种方法实现: 不带哨兵位: 如果两个链表有一个为空,直接返回另一个链表即可。 如果两个链表都是非空的,我们就创建一个结构体指针hea...
【数据结构OJ题】链表中倒数第k个结点
1. 题目描述 2. 思路分析 快慢指针法 (如果有小伙伴不了解快慢指针法,可以看看这篇文章:https://blog.csdn.net/m0_62531913/article/details/132309395?spm=1001.2014.3001.5502) 定义快慢指针fast和slow。首先让fast先走k步ÿ...
【数据结构OJ题】链表的中间结点
1. 题目描述 2. 思路分析 快慢指针法 通过快慢指针找到中间结点,快指针每次走两步,慢指针每次走一步,当快指针走到结尾的时候,慢指针正好走到中间位置。 我们这里用slow表示慢指针,fast表示快指针。一开始让slow和fast都指向头结点head。 如果单链表有奇数个结点,当fast->next...
【数据结构OJ题】反转链表
1. 题目描述 2. 思路分析 方法一:三指针翻转法 使用三个结构体指针n1,n2,n3,原地修改结点指向。 就是让n1先指向空指针NULL,n2指向头结点,n3指向头结点下一个结点。 用n2进行遍历。然后让n1指向n2,n2指向n3,n3指向n3的下一个结点。如此循环遍历&#x...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
数据库
分享数据库前沿,解构实战干货,推动数据库技术变革
+关注