飞道的博客

Java 数据结构——单链表面试题(一)

460人阅读  评论(0)


Java 数据结构——单链表面试题(一)


本次内容介绍大纲



  接上篇 Java——数据结构之单链表


  在上一篇文章中,我们介绍了单链表的各个方法的实现,这次我们将通过简单的单链表面试题(以牛客网及 Leetcode 的链表题为主)来深入了解 单链表的知识结构。


一、移除链表元素


1.题目要求



2.思路实现


  在上一篇博客 单链表的实现功能中 我们有一个删除第一次出现 key 关键字的节点的方法,这次我们要删除所有 关键字为 key 的节点。


  在下面的几个链表中,我们都要是删除 关键字为 45的节点。


情形一

情形二

情形三

情形四



思路总结:


3.代码实现




二、反转链表


1.题目要求




2.思路实现



实现以上链表结构.


思路一:依次头插法

思路二:利用 prev、curNext、cur 等变量进行 next 的变换



3.代码实现


思路一代码:



思路二代码:



三、找到链表的中间节点


1.题目要求


  举个例子,以下面的链表为例:


2.思路实现


思路一:


思路二:


当链表长度为奇数时




当链表长度为偶数时




  同样符合题目需求,所以思路二完全正确!!


3.代码实现




  好了今天的知识就分享到这里,希望大家多多练习,谢谢大家的欣赏与关注!!



  感谢支持!!!



  之后的单链表面试题博主会持续进行更新,欢迎各位读者大大的关注哦!!



未完待续…


转载:https://blog.csdn.net/rain67/article/details/116895081
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场