【数据结构算法(二)】链表总结

news2024/12/24 11:36:55

🌈键盘敲烂,年薪30万🌈

目录

普通单向链表

双向链表

带哨兵的链表

环形链表

⭐双向带头带环链表的实现⭐

⭐链表基础OJ⭐


普通单向链表

结点结构:只有val 和 next指针

初始时:head = null;


 

双向链表

指针:prev指针 val next指针

初始时:head = null;


 

带哨兵的链表

初始时:new 一个新节点sentinel val不重要,next = null


 

环形链表

尾节点的next指向头结点

初始时:头结点的next指向自己


 

⭐双向带头带环链表的实现⭐

准备工作

public class TheBestLinkedList implements Iterable<Integer>{

    private Node sentinel = new Node(null, 666, null);

    public TheBestLinkedList() {
        sentinel.prev = sentinel;
        sentinel.next = sentinel;
    }
    private static class Node{
        Node prev;
        int val;
        Node next;

        public Node(Node prev, int val, Node next) {
            this.prev = prev;
            this.val = val;
            this.next = next;
        }
    }
    @Override
    public Iterator<Integer> iterator() {
        return null;
    }
}

addFirst

    public void addFirst(int val){
        Node newNode = new Node(sentinel, val, null);

        Node first = sentinel.next;
        newNode.next = first;
        first.prev = newNode;
        sentinel.next = newNode;
    }

addLast

    public void addLast(int val){
        Node newNode = new Node(null, val, sentinel);
        Node last = sentinel.prev;

        last.next = newNode;
        newNode.prev = last;
        sentinel.prev = newNode;

    }

removedLast

    public Node removedLast(){
        if(isEmpty()){
            return null;
        }
        Node last = sentinel.prev;
        Node removedPrev = last.prev;

        sentinel.prev = removedPrev;
        removedPrev.next = sentinel;
        return last;
    }

removedFirst

    public Node removedFirst(){
        if(isEmpty()){
            return null;
        }
        Node first = sentinel.next;
        // 只有一个节点 removedNext = sentinel
        Node removedNext = first.next;

        sentinel.next = removedNext;
        removedNext.prev = sentinel;
        return first;

    }

isEmpty

    public boolean isEmpty(){
        return sentinel.prev == sentinel;
    }

迭代器遍历

    @Override
    public Iterator<Integer> iterator() {
        return new Iterator<Integer>() {
            Node p = sentinel.next;
            @Override
            public boolean hasNext() {
                return p != sentinel;
            }

            @Override
            public Integer next() {
                int ans =  p.val;
                p = p.next;
                return ans;
            }
        };
    }

 

⭐链表基础OJ⭐

1.反转链表

2.根据值删除链表

3.删除倒数第n个结点

4.有序链表去重

5.合并两个有序链表

6.合并多个有序链表

7.找链表中间结点

8.回文链表

9.链表环问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1237157.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

特征工程完整指南 - 第一部分

苏米特班迪帕迪亚 一、说明 特征工程是利用领域知识从原始数据中提取特征的过程。这些功能可用于提高机器学习算法的性能。本篇叙述在特征选择过程的若干数据处理。 一般来说&#xff0c;特征工程有以下子步骤&#xff1a; 特征转换特征构建特征选择特征提取 二、特征转换的缺…

12.文档中添加Appendix

要在 LaTeX 文档中添加附录&#xff0c;您可以使用 \appendix 命令&#xff0c;它会告诉 LaTeX 后续部分是附录。以下是添加附录的步骤&#xff1a; 在文档的导言部分&#xff08;在 \begin{document} 之前&#xff09;导入 appendix 宏包。您可以使用以下命令&#xff1a; \…

Centos8部署MySQL主从复制报错问题

问题1.在部署MySQL主从复制时&#xff0c;创建用户提示ERROR 1819&#xff1a;Your password does not satisfy the current policy requirements。即为当前配置的密码&#xff0c;不符合策略要求。 问题1解决方式&#xff1a; set global validate_password.policyLOW; \\…

「Verilog学习笔记」含有无关项的序列检测

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1ns module sequence_detect(input clk,input rst_n,input a,output reg match);reg [8:0] a_tem ; always (posedge clk or negedge rst_n) begin if (~rs…

jvs-智能bi(自助式数据分析)11.21更新功能上线

jvs智能bi更新功能 新增: 1.字段设置节点新增自定义时间格式功能&#xff1b; 自定义功能允许用户根据需要自定义日期和时间字段的显示格式&#xff0c;为用户提供了更大的灵活性和便利性 2.图表时间搜索条件新增向下兼容模式&#xff1b; 时间搜索条件的向下兼容模式允许用…

万界星空科技QMS质量管理系统介绍

QMS&#xff08;Quality Management System&#xff09;质量管理系统是五大基础系统之一&#xff0c;在工业企业中被广泛的应用&#xff0c;在质量策划、生产过程质量监督、体系审核和文档管理等业务上发挥着不可替代的作用。 一般制造业工厂现状&#xff1a;质量成本高&#x…

运动耳机哪个牌子好?盘点最值得入手的五款运动耳机

现在&#xff0c;不入耳的运动耳机成了许多运动爱好者的首选&#xff0c;我也不例外&#xff0c;不得不说骨传导耳机跟运动真的很搭&#xff0c;不仅佩戴稳固不掉落&#xff0c;而且防水好&#xff0c;可以说是最值得入手的运动耳机&#xff0c;为了避免大家在选购运动耳机的时…

超级会员卡积分收银系统源码 会员卡+积分商城+收银功能+多门店系统 附带完整的搭建教程

线上线下的融合已经成为趋势。在这个过程中&#xff0c;会员卡积分收银系统成为了许多企业不可或缺的一部分。该系统以超级会员卡为基础&#xff0c;结合积分商城、收银功能以及多门店系统&#xff0c;为企业提供了一站式的解决方案&#xff0c;帮助企业实现线上线下会员一体化…

CAS方式实现单点登录SSO

1. CAS介绍 CAS&#xff08;Central Authentication Service&#xff09;中心认证服务 下面这张图来自官网&#xff0c;清晰简单的介绍了CAS的继续交互过程 2. CAS具体实现 首先需要分别搭建CAS-server和CAS-client服务&#xff0c; 这两个服务分别在2台机器上&#xff0c;…

2023年国自然植物科学相关面上项目信息公布(小麦、大麦、棉花、大豆、玉米)

2024年申报国自然项目基金撰写及技巧http://mp.weixin.qq.com/s?__bizMzA4NTAwMTY1NA&mid2247575761&idx1&sn32dbacd3393f3b76a1e0668e4b8b3c89&chksm9fdd7c08a8aaf51ec31d4790067bb57751a09947eeb7e728b8c008d26b89adba37e0cab32a62&scene21#wechat_redi…

梨花教育,精心的声音可提升罪案剧的吸引力和体验

在为罪案剧录制配音时&#xff0c;配音员应致力于营造剧集所需的紧绚和不确定性&#xff0c;同时准确地传达角色的心理活动和情绪纠葛。罪案剧往往围绕着刑侦探索、法律较量、道德抉择等主题展开&#xff0c;因此配音需要与这些情境相适应。以下是进行罪案剧配音时的几点建议&a…

Vue 2使用element ui 表格不显示

直接修改package.json文件 把这两个依赖修改成对应的 删除node_modules 重新安装依赖 重启

集成电路工厂用什么ERP?哪家的集成电路ERP比较好

集成电路通常对制造工艺、生产设备、品质检验等方面有较高的要求&#xff0c;而随着智能技术和自动化技术的发展成熟&#xff0c;如今集成电路行业逐渐迈入数字化和智能化阶段&#xff0c;而至这个时代背景当中&#xff0c;很多集成电路工厂借助ERP实现信息化转型升级。 时至今…

汽车托运汽车会产生公里数吗?

汽车托运&#xff0c;顾名思义就是把汽车放在板车上进行托运&#xff0c;既然是被托运&#xff0c;那为什么还会产生公里数呢?是被司机私用了吗?还是被当成租赁工具租借出去了呢? 其实不然&#xff0c;回到托运流程里&#xff0c;特别是大板车&#xff0c;我们的线路有很多需…

008 OpenCV matchTemplate 模板匹配

目录 一、环境 二、模板匹配算法原理 三、代码演示 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、模板匹配算法原理 cv.matchTemplate是OpenCV库中的一个函数&#xff0c;用于在图像中查找与模板匹配的特征。它的主要应用场景…

为何内存不够用?微服务改造启动多个Spring Boot的陷阱与解决方案

在生产环境中我们会遇到一些问题&#xff0c;此文主要记录并复盘一下当时项目中的实际问题及解决过程。 背景简述 最初系统上线后都比较正常风平浪静的。在系统运行了一段时间后&#xff0c;业务量上升后&#xff0c;生产上发现java应用内存占用过高&#xff0c;服务器总共64…

穿山甲SDK接入收益·android广告接入·app变现·广告千展收益·eCPM收益(2023.11)

接入穿山甲SDK的app 全屏文字滚动APP 数独训练APP 广告接入示例: Android 个人开发者如何接入广告SDK&#xff0c;实现app流量变现 接入穿山甲SDK app示例&#xff1a; android 数独小游戏 经典数独休闲益智 2023.11.11 ~ 2023.11.22 app接入上架有一段时间了&#xff0c;接…

毕业设计2049网上选课系统JSP【程序源码+文档+调试运行】

摘要 本文详细介绍了一个网上选课系统的设计与实现过程。该系统主要分为学生用户、管理员和教师用户三个模块&#xff0c;涵盖了用户登录、在线选课、信息管理、密码修改等功能。通过对系统功能的分析&#xff0c;进行了数据库设计和界面设计&#xff0c;并进行了测试和优化。…

5G将如何改变我们的生活和工作方式?

本文翻译自 How Will 5G Transform the Way We Live and Work?&#xff0c;作者&#xff1a;Ansam Yousry&#xff0c; 略有删改。 5G有潜力为所有人创造一个更加互联、高效和可持续的世界。 欢迎来到5G革命&#xff01; 想象一下这样一个世界&#xff0c;您可以在几秒钟内下…

人在国企,年薪30w,每天工作1小时,觉得没意思,要不要走?

精彩回顾&#xff1a;进了央企&#xff0c;拿了户口&#xff0c;却感觉被困住了。 我们经常对自己的掌握的技能视若无睹&#xff0c;认为那不过是寻常之物&#xff0c;但是对于不懂的人来说&#xff0c;那就是宝藏啊。就好像&#xff0c;你可能会做一个超级棒的PPT&#xff0c;…