猫哥导读:随着大数据行业的发展,求职的道路上也会略显坎坷,公司对员工的要求也会越来越高,如果你在面试的路上没有碰壁过,只能说你太幸运了,我身边的朋友,基本上都会遇到面试失败的情况,大多数技术牛人都卡在了笔试题上,这也是为什么大厂员工跳槽前喜欢刷LeetCode,因为他们基本的技能都会在日常工作中反复的运用,工作经验也是实打实的大厂经验,唯一可以难倒他们就是算法+数据结构题。

赠语

我见过985学校毕业的大佬他们记忆力都很好,胆大心细,爱学习。

如果你普通二本学,请不要眼高手低,多动手反复练习。

  • 机会都是留给有准备的人的,千万不要想着不准备上战场就能成功.

  • 多看面经,面经就是面试官们的招聘导向,透过阅读大量的面经,你能够感受得到面试官想要找到什么样的人,并且你可以有针对性地去准备.

  • 不断地去面试,如果你这次面试失败了,那一定要好好总结其中的原因,一定要想方设法地从面试官口中套出自己的不足,这样你下次面试成功的概率就会增加.

1、重排链表--阿里巴巴

给定一个单链表 L:L0→L1→…→Ln-1→Ln ,

将其重新排列后变为:L0→Ln→L1→Ln-1→L2→Ln-2→…

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例 1:

给定链表 1->2->3->4, 重新排列为 1->4->2->3.

示例 2:

给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.

class Solution {
public:void reorderList(ListNode *head) {if (head == nullptr) {return;}vector<ListNode *> vec;ListNode *node = head;while (node != nullptr) {vec.emplace_back(node);node = node->next;}int i = 0, j = vec.size() - 1;while (i < j) {vec[i]->next = vec[j];i++;if (i == j) {break;}vec[j]->next = vec[i];j--;}vec[i]->next = nullptr;}
};

2、链表求和--快手

给定两个用链表表示的整数,每个节点包含一个数位。

这些数位是反向存放的,也就是个位排在链表首部。

编写函数对这两个整数求和,并用链表形式返回结果。

示例:

输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295

输出:2 -> 1 -> 9,即912

进阶:思考一下,假设这些数位是正向存放的,又该如何解决呢?

示例:

输入:(6 -> 1 -> 7) + (2 -> 9 -> 5),即617 + 295

输出:9 -> 1 -> 2,即912

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {//初始进位为0int pre = 0;//操作数ListNode mid = new ListNode(0);//返回头节点ListNode anws = mid ;//当l1和l2都不为null时进入while循环while(l1!=null&&l2!=null){//操作数赋值mid.val = (l1.val+l2.val+pre)%10;//更新进位pre = (l1.val+l2.val+pre)/10;//更新头节点l1 = l1.next;l2=l2.next;//头节点更新后判断是否为空if(l1==null){//如果l1头节点为空且进位为0,则操作数的next直接为l2剩下的if(pre==0) {mid.next = l2;return anws;}else {//如果有进位,则递归调用addTwoNumbers方法mid.next = addTwoNumbers(l2,new ListNode(pre));return anws;}}//同上if(l2 == null){if(pre==0) {mid.next = l1;return anws;}else {mid.next = addTwoNumbers(l1,new ListNode(pre));return anws;}}//l1 l2更新后都不为null,则设置操作数为0 进入下一次while循环mid.next =new ListNode(0);mid = mid.next;}//l1为null,直接不能进入上面while循环的情况下,直接返回l2if(l1==null){return l2;}//同上else if(l2 ==null){return l1;}return anws;}
}

3、反转链表--字节跳动面试题

# 题目

这其实是一道变形的链表反转题,大致描述如下给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助)

例如:
链表:1->2->3->4->5->6->7->8->null, K = 3。那么 6->7->8,3->4->5,1->2各位一组。调整后:1->2->5->4->3->8->7->6->null。其中 1,2不调整,因为不够一组。

# 解答

这道题的难点在于,是从链表的尾部开始组起的,而不是从链表的头部,如果是头部的话,那我们还是比较容易做的,因为你可以遍历链表,每遍历 k 个就拆分为一组来逆序。但是从尾部的话就不一样了,因为是单链表,不能往后遍历组起。不过这道题肯定是用递归比较好做

 先做一道类似的反转题

在做这道题之前,我们不仿先来看看如果从头部开始组起的话,应该怎么做呢?例如:链表:1->2->3->4->5->6->7->8->null, K = 3。调整后:3->2->1->6->5->4->7->8->null。其中 7,8不调整,因为不够一组。

这道题我们可以用递归来实现,假设方法reverseKNode()的功能是将单链表的每K个节点之间逆序(从头部开始组起的哦);reverse()方法的功能是将一个单链表逆序。那么对于下面的这个单链表,其中 K = 3。

我们把前K个节点与后面的节点分割出来:

temp指向的剩余的链表,可以说是原问题的一个子问题。我们可以调用reverseKNode()方法将temp指向的链表每K个节点之间进行逆序。再调用reverse()方法把head指向的那3个节点进行逆序

class Node{private String val;private Node next;
}public Node reversePart(Node head  , int k){Node temp = head;for(int index = 1;index < k&&temp!=null;index++){temp = temp.next;}if(temp == null){return  head;}Node rNode = temp.next;temp.next = null;Node reverseNode = reverse(head);Node partNode = reversePart(rNode , k);head.next = partNode;return reverseNode;
}public Node reverse(Node head ){if(head == null || head.next == null){return  head;}Node p = head;Node q = head.next;while (q!=null){Node tempNode = q.next;q.next = p;p=q;q=tempNode;}head.next=null;return p;
}public Node main(Node head  , int k){Node tempNode1 = reverse(head);Node tempNode2 = reversePart(tempNode1 , k);return reverse(tempNode2);
}

4、合并两个排序的链表--美团笔试题

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

示例1:

输入:1->2->4, 1->3->4

输出:1->1->2->3->4->4

限制:

0 <= 链表长度 <= 1000

class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {ListNode dum = new ListNode(0), cur = dum;while(l1 != null && l2 != null) {if(l1.val < l2.val) {cur.next = l1;l1 = l1.next;}else {cur.next = l2;l2 = l2.next;}cur = cur.next;}cur.next = l1 != null ? l1 : l2;return dum.next;}
}

建议收藏|四大互联网经典链表笔试题相关推荐

  1. 贵港java_贵港人才网:经典java笔试题及答案分享

    经典java笔试题及谜底,共享与参考: 1.Anonymous Inner Class (匿名里面类) 是否能够extends(秉承)别的类,是否能够implements(完成)interface(接 ...

  2. 关于php正则表达式得选择题,经典PHP笔试题

    PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言,学习,使用广泛,主要适用于Web开发领域.下面是unjs ...

  3. C语言经典面试笔试题

    总结几道C语言经典面试笔试题,涉及联合体,位段,大小端等知识点,有兴趣的可以刷刷. 1.联合体大小问题 2.联合体+大小端问题 3.形参与实参关系+内存开辟问题 4.位段使用问题 5.返回栈空间地址问 ...

  4. 建议收藏:模拟版图高频面试题,直通面试,Offer抢先拿!

    模拟板图工程师在行业内是个神奇的存在,**"零基础的门槛"."岗位需求量大"."高就业薪资"**模拟版图工程师成为了行业宠儿,促使很多人跨行 ...

  5. 【分享】国内著名互联网企业PHP笔试题

    面对目前全球金融危机,国内动荡的互联网环境,那冬天就要到来,大家也在积极的寻找一个过冬的窝,所以估计辞职跳槽的人很多,特别为大家分享一些各个著名公司的PHP笔试题,为大家求职就业打好坚实基础,希望大家 ...

  6. 100道经典软件测试笔试题(附答案)一次性查缺补漏个够

    千呼万唤始出来,很多群友说我看了这么多面试题,但是公司要笔试怎么办?有没有能够笔试给我们练练手,这边我也是特意帮大家整理了这么100道软件测试的笔试题,答案在最后,试试自己能答对多少吧!需要更多的关于 ...

  7. 100条经典C笔试题

    题目来源: 1.中兴.华为.慧通.英华达.微软亚洲技术中心等中 外企业面试题目: 2.C 语言面试宝典(林锐<高质量编程第三版>). 说明: 1.部分C 语言面试题中可能会参杂部分和C++ ...

  8. 一个学员去了互联网大厂一个笔试题分享

    一.基础部分 1.windows系统中,打开远程桌面的命令是? A ping B mstsc C conslo D cmd 2.windows系统中,tracert命令的作用是? A 查看计算机的IP ...

  9. 链表笔试题汇编(一)

    题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点. 分析:删除结点可以从链表的头结点开始顺序遍历,发现某个结点的next指向要删除的结点时,将该结点的next指向要删除的 ...

最新文章

  1. ros::spinOnce()机制 有点东西
  2. 现有的iOS项目集成ReactNative的记录文档
  3. shell 的 功能语句--1
  4. yii2 postman 文件上传
  5. linux网卡驱动离线安装_新装Linux系统没有网卡驱动的解决办法和步骤
  6. weblogic 故障转移
  7. 动态添加Html单元格时,事件怎么写?如mouseover事件
  8. python filter_Python filter()
  9. 在不安装oracle,在linux上安装oracle 10g上还是不顺利
  10. Axure综合小案例(动态时钟)
  11. RS232标准9针串口引脚定义
  12. windows-sys:21:windows系统(win7 win10 win11)设置护眼色详细过程
  13. AutoCAD2015激活码和密钥
  14. python从某行开始读_python 读取行
  15. 最炫python表白代码_制作炫酷的表白小程序
  16. Android sockot连接打印机EPSON ESC/POS指令打印
  17. adobe illustrator软件能做什么
  18. 如何上传到GitHub的main分支而不是master分支
  19. [F2F] MyBatis相关面试题
  20. 创建test.html页面,详解用Pytest+Allure生成漂亮的HTML图形化测试报告

热门文章

  1. 神途boss_神途boss刷新
  2. web前端设计与开发大作业(三)----注册与登陆界面
  3. 广发基金2011年投资策略交流会[转]
  4. golang 结构体struct、数组、结构体数组 定义与赋值 、json string转struct
  5. phpstorm配置mac php环境
  6. 新研究显示全球外籍人士对居住地怀有信心,近三分之二受访者对未来12个月感到乐观
  7. 游侠连不上服务器未响应,游侠游戏服务器未响应
  8. Excel计算公式使用
  9. 数据库 函数依赖及范式(最通俗易懂)
  10. 波音的冬天,空客的春天