
单链表
易燃易爆炸i
小白
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构--java语言实现反转单链表
目录 1 题目描述 2 解题思路 3 代码实现 1 题目描述 输入一个链表,例如:12 -> 23 -> 34 -> 45 -> 56 -> null 输出:56 -> 45 -> 34 -> 23 -> 12 -> null,反转后输出新链表的表头,例如: 2 解题思路 首先我们拿到一个单链表,假设它不为空,且至少有2...原创 2019-05-19 19:17:47 · 257 阅读 · 0 评论 -
数据结构--java语言实现合并两个排序的链表
目录 1 题目描述 2 解题思路 3 代码实现 1 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 2 解题思路 对于两个已经排序的链表,我们可以定义一个虚拟结点,通过比较两个链表值的大小,完成链表的拼接工作。最后返回虚拟结点的下一结点即可。 3 代码实现 public ListNode Merge(ListNode li...原创 2019-05-23 12:09:54 · 487 阅读 · 0 评论 -
数据结构--java语言实现找出两个链表的第一个公共结点
目录 1 题目描述 2 解题思路 3 代码实现 1 题目描述 输入两个链表的头结点,若两个链表相交,返回交点结点,否则,返回null 2 解题思路 首先,我们不难想到:若两个链表相交,肯定成“倒Y”型。所以,我们可以将长度长一点的链表先走“差值”步,再次,两个链表同时走,若相交且没有走到尾结点处,返回该结点,否则,返回null 3 代码实现 public ListNode Fi...原创 2019-05-23 11:47:55 · 262 阅读 · 0 评论 -
数据结构--java语言实现删除链表中重复结点
目录 1 题目描述 2 解题思路 3 代码实现 1 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 2 解题思路 首先,定义一个虚拟结点node,其后保存单链表中不重复的结点,最后返回node.next...原创 2019-05-22 12:22:18 · 578 阅读 · 1 评论 -
数据结构--java语言实现链表的回文结构
目录 1 题目描述 2 解题思路 3 代码实现 1 题目描述 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。 2 解题思路 大的方向分为3步:① 找到中间结点 ② 对单链表后半部分进行反转 ③ 链表向中间推进判断值是否相等 具...原创 2019-05-21 13:03:12 · 282 阅读 · 0 评论 -
数据结构--java语言判断链表是否有环
目录 1 题目描述 2 解题思路 3 代码实现 1 题目描述 给定一个链表,判断是否有环。 2 解题思路 定义两个引用:fast和slow,在合法的情况下,让fast一次走两步,slow一次走一步,若某次遍历时fast==slow,则说明该链表有环。 3 代码实现 //给定一个链表,判断是否有环 public boolean hasCycle(){ No...原创 2019-05-20 17:30:48 · 257 阅读 · 0 评论 -
数据结构--java语言实现返回链表中环的入口结点,若无环,则返回null
目录 1 题目描述 2 解题思路 3 代码实现 1 题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 2 解题思路 首先我们不难想到,遍历一遍单链表,若某一结点的next指向null,则说明该单链表无环,返回null;若有环,我们定义两个引用fast和slow,让fast每次走两步,slow每次走一步,它俩肯定会在某个结点处相遇,那么问题来了,我们...原创 2019-05-22 11:30:20 · 217 阅读 · 0 评论 -
数据结构--java语言实现将单链表以给定值x分割成两部分,并按顺序输出
目录 1 题目描述 2 解题思路 3 代码实现 4 注意事项 1 题目描述 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。 2 解题思路 首先,我们可以定义四个结点:分别是分割后x之前的头结点和尾结点、x之后的头结点和尾结点。 其次,遍历单链表,将比x值小的结点...原创 2019-05-20 16:56:43 · 803 阅读 · 0 评论 -
数据结构--java语言实现输入一个链表,输出该链表中倒数第k个结点
目录 1 题目描述 2 解题思路 3 代码实现 1 题目描述 输入一个链表,输出该链表的倒数第k个结点 2 解题思路 按照常规的解题思路,我们可能会想到:将单链表遍历一遍,求出单链表的长度n,再从头开始遍历单链表n-k次,即得到了倒数第k个结点。但是这种方式无疑增加了很多功课,若单链表个数较多,要求输出前几个结点值,使得计算量增大了很多~我们设想:如何只遍历一遍单链表,就能找出倒数第...原创 2019-05-19 22:11:19 · 769 阅读 · 0 评论 -
数据结构--java语言实现无头单向非循环链表
接口实现 定义一个接口: public interface ILinked { //头插法 void addFirst(int data); //尾插法 void addLast(int data); //任意位置插入,第一个数据节点为0号下标 boolean addindex(int index,int data); //查找是否包含...原创 2019-07-30 12:00:47 · 154 阅读 · 0 评论