前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 数据结构——单链表面试题(二)

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

作者头像
RAIN7
发布2021-08-11 16:37:22
2060
发布2021-08-11 16:37:22
举报

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

本次内容介绍大纲

在这里插入图片描述
在这里插入图片描述

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

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

一、链表中倒数第k个结点

1.题目要求

在这里插入图片描述
在这里插入图片描述

举一个例子:

  我先提供一个 已有的链表结构

在这里插入图片描述
在这里插入图片描述

  我们现在提供 给一个整形参数 k = 2 ,找到这个链表结构中的倒数第二个节点 。

2.思路实现

思路一

在这里插入图片描述
在这里插入图片描述

思路二

在这里插入图片描述
在这里插入图片描述

这种思路我们在实际链表中 走一遍…

设置 fast 、slow 指向head 头节点

在这里插入图片描述
在这里插入图片描述

fast 先走 k-1 步, slow 保持不动

在这里插入图片描述
在这里插入图片描述

slow、fast 同时向后走,直到 fast 为指为null

在这里插入图片描述
在这里插入图片描述

  此时 slow 指向的就是 我们题目所求的链表的 倒数第 2 个节点。

  返回 slow。

  好的 思路二能够找到倒数第 K 个节点,我们来就具体实现其每一个步骤的具体思路

1.首先我们传入参数 k 值,要考虑 k的合法性

2.slow、fast 的实际操作

在这里插入图片描述
在这里插入图片描述

  但是 ,上面的代码思路仍然有缺陷,在判断 k 的合法性时, 如果 k > sizeof() ,我们要调用 sizeof() 函数,此时也是一次 遍历链表的过程,所以 遍历次数两遍,也不符合要求。

  我们还要继续调整…

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  这样的思路过程就没有问题了,整体代码遍历一遍。

3.代码实现

在这里插入图片描述
在这里插入图片描述

二、合并两个有序链表

1.题目要求

在这里插入图片描述
在这里插入图片描述

我们提供两个已知的有序链表

在这里插入图片描述
在这里插入图片描述

按照题目要求,最终按照升序 返回一个合并的链表

在这里插入图片描述
在这里插入图片描述

2.思路实现

在这里插入图片描述
在这里插入图片描述

3.代码实现

在这里插入图片描述
在这里插入图片描述

三、链表分割

1.题目要求

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.思路实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.代码实现

在这里插入图片描述
在这里插入图片描述

四、删除链表中重复的结点

1.题目要求

在这里插入图片描述
在这里插入图片描述

2.思路实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.代码实现

在这里插入图片描述
在这里插入图片描述

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

感谢支持!!!

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

未完待续…

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-05-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java 数据结构——单链表面试题(二)
  • 一、链表中倒数第k个结点
    • 1.题目要求
      • 2.思路实现
        • 3.代码实现
        • 二、合并两个有序链表
          • 1.题目要求
            • 2.思路实现
              • 3.代码实现
              • 三、链表分割
                • 1.题目要求
                  • 2.思路实现
                    • 3.代码实现
                    • 四、删除链表中重复的结点
                      • 1.题目要求
                        • 2.思路实现
                          • 3.代码实现
                          • 未完待续…
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档