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


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


本次内容介绍大纲


在这里插入图片描述


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


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


一、移除链表元素


1.题目要求


在这里插入图片描述


2.思路实现


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


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


情形一

在这里插入图片描述

情形二

在这里插入图片描述

情形三

在这里插入图片描述

情形四

在这里插入图片描述

思路总结:

在这里插入图片描述


3.代码实现


在这里插入图片描述

二、反转链表


1.题目要求


在这里插入图片描述

2.思路实现


在这里插入图片描述


实现以上链表结构.


思路一:依次头插法

在这里插入图片描述

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

在这里插入图片描述

3.代码实现


思路一代码:


在这里插入图片描述


思路二代码:


在这里插入图片描述


三、找到链表的中间节点


1.题目要求

在这里插入图片描述
  举个例子,以下面的链表为例:

在这里插入图片描述


2.思路实现


思路一:

在这里插入图片描述


思路二:


当链表长度为奇数时


在这里插入图片描述

在这里插入图片描述

当链表长度为偶数时


在这里插入图片描述

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


3.代码实现


在这里插入图片描述



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



  感谢支持!!!



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



未完待续…

  • 34
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 34
    评论
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RAIN 7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值