0
点赞
收藏
分享

微信扫一扫

java数据结构-链表经典习题

A邱凌 2024-06-24 阅读 30

前言

目录

1.删除链表中等于给定值 val 的所有节点。

 题解思路

 2.反转一个单链表

思路分析

画图分析 

 代码实现

3.链表的中间结点

思路分析

画图分析

 代码实现

 4.链表中倒数最后k个结点

第一解决办法

第二种解决办法

5.合并两个有序链表

思路分析

画图分析

 代码实现

6. 链表分割

思路分析

画图分析

 代码实现

 7.链表回文

思路分析

画图分析

代码实现

8. 相交链表

思路分析

画图分析

代码实现

9.环形链表1

思路分析

画图分析

代码实现

10.环形链表2

思路分析

画图分析

代码实现

总结


1.删除链表中等于给定值 val 的所有节点。

 题解思路

 

代码实现

 2.反转一个单链表

反转链表链接:反转链表

画图分析 

 代码实现

3.链表的中间结点

给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结 点。

习题链接:链表中间结点

思路分析

画图分析

 代码实现

 4.链表中倒数最后k个结点

习题链接:链表中倒数最后k个结点_牛客题霸_牛客网 (nowcoder.com)

题目描述:输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。

如果该链表长度小于k,请返回一个长度为 0 的链表。

第二种解决办法

思路分析

画图分析

 代码实现

5.合并两个有序链表

习题链接:21. 合并两个有序链表 - 力扣(LeetCode)

题目描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

思路分析

画图分析

 代码实现

6. 链表分割

习题链接:链表分割_牛客题霸_牛客网 (nowcoder.com)

题目描述:现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。

思路分析

画图分析

 代码实现

 7.链表回文

习题链接:链表的回文结构_牛客题霸_牛客网 (nowcoder.com)

题目描述:

对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。

给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。

思路分析

画图分析

代码实现

8. 相交链表

题目链接:160. 相交链表 - 力扣(LeetCode)

题目描述:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。

思路分析

画图分析

代码实现

9.环形链表1

题目链接:141. 环形链表 - 力扣(LeetCode)

题目描述:

给你一个链表的头节点 head ,判断链表中是否有环。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。

如果链表中存在环 ,则返回 true 。 否则,返回 false 。

思路分析

画图分析

代码实现

10.环形链表2

题目链接:142. 环形链表 II - 力扣(LeetCode)

题目描述:

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 NULL

不允许修改 链表。

思路分析

画图分析

代码实现

总结

举报

相关推荐

0 条评论