面试 链表问题_编程面试中的前20个链表编码问题

面试 链表问题

图像功劳— 编写编码面试:编码问题的模式

大家好,我一直在分享许多编码面试问题
积极寻找工作的程序员,特别是对于初学者
刚毕业但没有实际工作的计算机工程师
经验。

过去,我分享了一些数据结构问题字符串算法问题和一些有用的在线课程 ,以为编程工作面试做准备。今天,我将分享一些来自编码面试常见问题清单

数据结构是任何编程求职面试中最重要的部分之一,通常是选择或拒绝候选人的原因,这就是
为什么实践这些基于数据结构的问题将使您在竞争者中占优势。

它还将使您成为更好的程序员,因为您可以开发逻辑和
解决这些问题的编码意识,这对您有很大帮助
编程生涯。

什么是链表?

链表是另一个补充数组数据结构的通用数据结构。 与数组类似,它也是线性数据结构,
以线性方式存储元素。

但是,与数组不同,它不会将它们存储在连续的位置。 取而代之的是,它们分散在内存中随处可见的内存中,内存通过节点相互连接。

链接列表不过是节点列表,其中每个节点都包含存储的值和下一个节点的地址。

由于这种结构, 在链接列表中添加和删除元素很容易 ,因为您只需要更改链接而不是创建数组即可 ,但是搜索很困难,并且通常需要O(n)时间才能在列表中找到元素。单链表。

本文提供有关数组和链表数据结构之间差异的更多信息。

它也以单链表的形式出现,使您可以在一个方向(向前或向后)移动。 一个双向链表 ,它使您可以双向浏览(向前和向后); 最后是圆形的链表 ,形成一个圆。

如何解决链表编码问题?

为了解决基于链表的问题,重要的递归知识很重要,因为链表是递归数据结构

如果从链接列表中选取一个节点,则其余数据结构为
仍然是一个链表,因此,许多链表问题都有
比迭代解决方案更简单的递归解决方案

还可以使用分而治之的技术来解决这些问题,该技术将问题分解为子问题,直到您可以解决它们为止。

例如,要反向链接列表,请断开链接列表,直到有
只有一个节点,到那时,您知道如何反向链接
一个节点的列表,只不过是同一个节点而已。

它与递归非常相似,实际上,最小的子问题是
可以解决成为递归解决方案的基本情况。

顺便说一句,没有解决这些基于链表的编码问题,如果
您没有数据结构的基本知识,或者您不必
最近刷新它们。 那样的话,我建议你先走
通过良好的数据结构和算法课程来修改概念。

如果您需要建议,以下是我一些久经考验的资源来深入学习数据结构和算法:

而且,如果您更喜欢书籍,没有什么比托马斯·H·科门的算法导论更好的了。 这是有关数据结构和算法的最全面的书籍之一。

链接列表中的常见问题解答

不用浪费您的时间,以下是Coding访谈中最常见和最受欢迎的链表访谈问题。 我已尽可能链接到该解决方案,但是我建议您首先尝试自己解决问题,这将使您受益,因为您会思考和学习。 解决问题或尝试后卡住后,您可以查看解决方案并向他们学习。

  • 一口气如何找到单链表的中间元素? 解决方案
  • 您如何检查给定的链表是否包含循环? 您如何找到循环的起点? 解决方案
  • 您如何反向链接列表? 解决方案
  • 如何在不递归的情况下反转单链接列表? 解决方案
  • 如何在未排序的链表中删除重复的节点? 解决方案
  • 您如何找到单链表的长度? 解决方案
  • 您如何从单链列表的末尾找到第三个节点? 解决方案
  • 如何使用Stack查找两个链表的总和? 解决方案
  • 您如何在适当的位置反向链接列表? (解)
  • 如何在链接列表的中间添加元素? (解)
  • 如何在Java中对链接列表进行排序? 解决方案
  • 数组和链表有什么区别? 回答
  • 如何从链表末尾删除第N个节点? 解决方案
  • 如何合并两个排序的链表? (解决方案)如何将排序列表转换为二叉搜索树? 解决方案
  • 给定一个链表和一个值 x ,对其进行分区,以使所有小于 x的 节点排在大于或等于 x的 节点之前 解决方案
  • 如何从排序的链表中删除重复项? 解决方案
  • 如何找到两个单链表的交点开始的节点。 解决方案
  • 如何检查给定的链表是否是回文? (解)
  • 如何从与给定值匹配的整数链接列表中删除所有元素? (解)

这些问题也将帮助您提高解决问题的能力
以提高您对链表数据结构的了解。

如果您无法解决这些链表编码问题,那么我
建议您通过以下方式刷新数据结构和算法技能
数据结构和算法:使用Java进行深入学习课程。

如果这些问题还不够,那么您也可以查看以下列表 30个链接列表面试问题,以获取更多练习问题。

采访采访的有用资源

如果您需要一些有用的资源来更好地进行编程和
编码求职面试,这里有一些在线课程和书籍
应该签出:

现在您已准备好进行编码面试

这些是数据结构和算法之外的一些最常见问题,可帮助您在面试中表现出色。

我还在博客上分享了很多有关数据结构和算法的问题,因此,如果您真的很感兴趣,可以随时去那里搜索。

这些共同的编码数据结构算法的问题s为你所需要知道的与任何公司,或大或小的成功面试,编程工作的任何级别的人。

如果您正在寻找2018年的编程或软件开发工作,则可以从此编码问题清单开始准备。

此列表提供了准备的好主题,还有助于评估您的
准备找出您的优势和劣势领域。

良好的数据结构和算法知识对于成功进行面试编码至关重要,因此您应该将重点放在大部分时间上
注意。

您可能喜欢的其他文章

每个程序员都应该阅读的10本算法书籍
适用于Java开发人员的前5本书数据结构和算法
来自访谈的20多个字符串编码问题
来自访谈的50多种数据结构和算法问题
来自编码面试的30多个基于数组的问题
从0到1:Java中的数据结构和算法
数据结构和算法分析—求职面试
10本准备技术编程/编码面试的书

结束语

谢谢,您到了本文的结尾……祝您编程采访顺利! 当然,这并非易事,但经过实践,您距离成功和您一直想要的工作只有一步之遥
这些问题。

如果您喜欢这篇文章,请与您的朋友和同事分享,不要忘记在Twitter上关注javinpaul

PS —如果您需要一些免费资源,则可以查看此免费数据结构和算法课程列表以开始准备工作。

翻译自: https://hackernoon.com/top-20-linked-list-coding-problems-from-programming-job-interviews-756d4a2bf652

面试 链表问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值