【校招VIP】前端算法考察之链表算法

本文深入探讨链表数据结构,讲解如何进行插入和删除操作,以及如何将链表分隔成等长或接近等长的部分。提供相关试题与解答,帮助前端开发者提升链表算法能力。同时,分享了链表在前端面试中的常见问题及解决策略,如寻找链表中点等。
摘要由CSDN通过智能技术生成

考点介绍:

链表是一种物理存储结构上非连续的数据结构,数据的逻辑顺序是通过链表中的指针链接次序实现相互勾连。链表相对数组而言有很多不同之处,在特定场景下能发挥独特的优势。例如链表的插入和删除操作比数组效率高,数组需要改变其他元素的位置,而链表只需要改变指针的指向。

本期分享的前端算法考察之链表算法,分为试题、文章以及视频三部分。

答案详情解析和文章内容点击下方链接即可查看!

一、考点题目

1、已知 pPre 为指向链表中某结点的指针, pNew 是指向新结点的指针,以下哪段伪码算法是将一个新结点插入到链表中 pPre 所指向结点的后面?

A.pPre->link = pNew; pNew = null
B.pPre->link = pNew->link; pNew->link = null
C.pNew->link = pPre->link; pPre->link = pNew
D.pNew->link = pPre->link; pPre->link = null

解答:C
首先将旧结点的指针域(即pPre->Link,它存放着接下来的那个结点的地址)赋值给新结点的指针域(pNew- >Link)......

2、把链表分隔成 k 部分,每部分的长度都应该尽可能相同,排在前面的长度应该大于等于后面的

解答:首先遍历链表得到有效数字的个数,再求出分成k份的余数和每一份的均长,前面的部分长度加1直到余数为零......

3、求单链表中有效节点的个数(如果有头结点,不统计头结点)

解答:

public static int getLenth(Node head){

        if (head.next == null) {

            return 0;

        }

        int lenth = 0;

        //让辅助指针指向头结点的下一个,就没有统计头结点

        Node temp = head.next;

        while(temp != null){

            temp = temp.next;

            lenth++;

        }

        return lenth;

    }

(答案点击下方链接查看哦)

二、考点文章

1、前端必备算法--链表

链表是一种物理存储单元上非连续、非顺序的存储结构。链表由一系列结点组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域……

2、常见算法总结 - 链表篇

我们可以采用快慢指针的思想,使用步长为1的慢指针和步长为2的快指针,当快指针抵达链表末尾时,此时慢指针指向的即为中点位置……

3、【校招VIP】2022秋招-前端学习记录-算法/链表入门

有序数据类型:数组,有序的线性结构,在内存开辟了连续的空间来存储数组的数据……

(点击链接查看完整版)

三、考点视频

1、用jquery写出找到同前元素

普通难度,但是注意里面有一个坑,就是当前元素可能没有第二个兄弟结点……

更多资讯可搜索校招VIP小程序查看哦!
移动端链接:https://m.xiaozhao.vip/dTopic/detail/558
PC端链接:校招VIP,专题 - 校招VIP

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值