前端进阶:链表的概念和应用
current = current.next; } node.next = current; previousNode.next = node; length++; return true } }else { return false } }; 2.4 根据节点的值查询节点位置根据节点的值查询节点位置实现起来比较简单,我们只要从头开始遍历,然后找到对应的值之后记录一下索引即可: // 查询节点所在位置 this.indexOf = (el) => { let idx = -1, curIdx = -1, current = head; while(current) { idx++ if(current.el === el) { curIdx = idx break; } current = current.next; } return curIdx }; 这里我们之所以要用idx和curIdx两个变量来处理,是因为如果用户传入的值不在链表里,那么idx的值就会有问题,所以用curIdx来保证准确性。 2.5 移除指定位置的节点移除指定位置的节点也需要判断一下边界条件,可插入节点类似,但要注意移除之后一定要将链表长度-1,代码如下: // 移除指定位置的元素 this.removeAt = (pos) => { // 检测边界条件 if(pos >=0 && pos < length) { let previousNode = null, current = head, curIdx = 0; if(pos === 0) { // 如果pos为第一个元素 head = current.next }else { while(curIdx++ < pos) { previousNode = current; (编辑:浙我家) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Telnet是什么命令 Telnet命令的使用方法介绍
- MobTech与中移互联网强联合 北上广深4城巡回沙龙展实力
- 中文存数据库乱码
- 数据库 – 在Microsoft Access(2010)中计算年和月的年龄
- @OrderBy导致java.lang.ClassCastException:antlr.CommonT
- ClassCastException:java.math.BigInteger在连接MySQL时无
- 今晚罗老师发飙补贴:一线大牌直播半价抢
- 奥比中光为OPPO全球首款旗舰电视提供视觉解决方案,抢占智能
- vivo 5G比邻计划全面推进 价格“贴近”成本价
- 如何解决当MySQL数据库碰到Syn Flooding问题