【数据结构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题】链表中倒数第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. 思路分析 我们可以定义一个结构体指针变量cur,让cur一开始指向头结点,同时定义一个结构体指针prev,令prev初始化为空指针NULL。 我们使用cur遍历链表,如果当前结点的值和val相等,我们再用if选择语句进行相应操作: 如果cur指向的结点是头结点,我们就让头...
【数据结构】链表经典OJ题,常见几类题型(一)
题型一:反转单链表 思路解析 反转一个链表主要是想让第一个节点指向NULL,第二个节点指向第一个,以此类推。那么我们不难想到,想要反转其中一个节点,两个指针肯定是不够的,所以这就要求我们定义三个指针:分别指向当前节点n2,前一个节点n1,后一个节点n3。 这里定义的三个指针主要作用:n1是为了能让当前节点能指向前一个节点地址,而n1就是记录前一个节点的地址,n3是为了在反...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
链表更多oj相关
数据库
分享数据库前沿,解构实战干货,推动数据库技术变革
+关注