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

文章目录

  • Java 数据结构——单链表面试题(一)
  • 一、移除链表元素
    • 1.题目要求
    • 2.思路实现
    • 3.代码实现
  • 二、反转链表
    • 1.题目要求
    • 2.思路实现
    • 3.代码实现
  • 三、找到链表的中间节点
    • 1.题目要求
    • 2.思路实现
    • 3.代码实现
  • 未完待续....


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


本次内容介绍大纲


Java 数据结构——单链表面试题(一)_第1张图片


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


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


一、移除链表元素


1.题目要求


Java 数据结构——单链表面试题(一)_第2张图片


2.思路实现


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


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


情形一

Java 数据结构——单链表面试题(一)_第3张图片

情形二

Java 数据结构——单链表面试题(一)_第4张图片

情形三

Java 数据结构——单链表面试题(一)_第5张图片

情形四

Java 数据结构——单链表面试题(一)_第6张图片

思路总结:

Java 数据结构——单链表面试题(一)_第7张图片


3.代码实现


Java 数据结构——单链表面试题(一)_第8张图片

二、反转链表


1.题目要求


Java 数据结构——单链表面试题(一)_第9张图片

2.思路实现


Java 数据结构——单链表面试题(一)_第10张图片


实现以上链表结构.


思路一:依次头插法

Java 数据结构——单链表面试题(一)_第11张图片

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

Java 数据结构——单链表面试题(一)_第12张图片

3.代码实现


思路一代码:


Java 数据结构——单链表面试题(一)_第13张图片


思路二代码:


Java 数据结构——单链表面试题(一)_第14张图片


三、找到链表的中间节点


1.题目要求

Java 数据结构——单链表面试题(一)_第15张图片
  举个例子,以下面的链表为例:

Java 数据结构——单链表面试题(一)_第16张图片


2.思路实现


思路一:

Java 数据结构——单链表面试题(一)_第17张图片


思路二:


当链表长度为奇数时


Java 数据结构——单链表面试题(一)_第18张图片

Java 数据结构——单链表面试题(一)_第19张图片

当链表长度为偶数时


Java 数据结构——单链表面试题(一)_第20张图片

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


3.代码实现


Java 数据结构——单链表面试题(一)_第21张图片



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



  感谢支持!!!



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



未完待续…

你可能感兴趣的:(java,数据结构,链表,leetcode,单链表)