代码随想录算法训练营第三天 | 链表理论基础 | 707.设计链表

embedded/2024/12/21 7:01:33/
  • 要求太多,代码量太大,实在难以完成

  • 在以前听说,好的程序员,可以在短时生成大量的代码,本题只方法才只有6个,根本不算多

  • 每天手敲代码量太少,才是问题

  • #include <iostream>class MyLinkedList {
    private:struct Node {int val;Node* next;Node(int v): val(v), next(nullptr) {}};Node* visualHead;int len;
    public:MyLinkedList() {visualHead = new Node {0};len = 0;}int get(int index) {if (len == 0 || index < 0 || index > len - 1) return -1;auto *p = visualHead->next;for ( ; index--; p = p->next);return p->val;}void addAtHead(int val) {Node *new_node = new Node {val};auto* old_next = visualHead->next;visualHead->next = new_node;new_node->next = old_next;++len;}void addAtTail(int val) {Node *new_node = new Node {val};auto* p = visualHead;for (; p->next != nullptr; p = p->next);p->next = new_node;++len;}void addAtIndex(int index, int val) {if (index < 0 || index > len) return;Node *new_node = new Node {val};auto *p = visualHead;for ( ; index--; p = p->next);new_node->next = p->next;p->next = new_node;++len;}void deleteAtIndex(int index) {if (index >= len || index < 0) return;auto* p = visualHead;for (; index--; p = p->next);auto* delNode = p->next;p->next = p->next->next;delete delNode;delNode = nullptr;--len;}
    };int main()
    {MyLinkedList mll {};mll.addAtHead(3);mll.addAtTail(5);mll.addAtIndex(2, 8);mll.addAtIndex(2, 7);std::cout << mll.get(1) << std::endl;std::cout << mll.get(0) << std::endl;std::cout << mll.get(2) << std::endl;std::cout << mll.get(3) << std::endl;return 0;
    }
    
  • 学习到的是在链中遍历时,使用index--是可以省略多定义变量的,但老师也说了,写成--index会死循环,是什么道理?

  • 汇总


http://www.ppmy.cn/embedded/147179.html

相关文章

TCA9555芯片手册解读(5)

接前一篇文章&#xff1a;TCA9555芯片手册解读&#xff08;4&#xff09; 二、详述 6. 控制寄存器和命令字节 在成功确认地址字节后&#xff0c;总线主设备发送一个命令字节&#xff0c;该命令字节存储在TCA9555的控制寄存器中。此数据字节的三位表示将受影响的操作&#xff…

JAVA爬虫获取1688关键词接口

以下是使用Java爬虫获取1688关键词接口的详细步骤和示例代码&#xff1a; 一、获取API接口访问权限 要使用1688关键词接口&#xff0c;首先需要获取API的使用权限&#xff0c;并了解接口规范。以下是获取API接口的详细步骤&#xff1a; 注册账号&#xff1a;在1688平台注册一…

Windows安全中心(病毒和威胁防护)的注册

文章目录 Windows安全中心&#xff08;病毒和威胁防护&#xff09;的注册1. 简介2. WSC注册初探3. WSC注册原理分析4. 关于AMPPL5. 参考 Windows安全中心&#xff08;病毒和威胁防护&#xff09;的注册 本文我们来分析一下Windows安全中心&#xff08;Windows Security Center…

Vue3.0使用JavaScript脚本实现Vue Router路由:页面跳转、获取URL参数

Vue 使用 Vue Router 路由系列文章: 《Vue使用Vue Router路由:开发单页应用》 《Vue使用Vue Router路由:通过URL传递与获取参数》 《Vue3.0使用JavaScript脚本实现Vue Router路由:页面跳转、获取URL参数》 1、路由基础 在单页 Web 应用中,整个项目只有一个 HTML 文件,不…

模版生成Word报表

目录 一、报表技术对比 二、POI-TL使用 一、报表技术对比 1、JasperReports报表技术 优点&#xff1a; ①开源免费。JasperReports是一款开源工具&#xff0c;用户可以免费获取和使用&#xff0c;无需支付任何授权费用。 ②功能丰富。JasperReports提供了丰富的组件和功能&a…

CTFHUB 信息泄露 -phpinfo

直接ctrl f 找到flag 总结&#xff1a; 什么是 phpinfo 源码泄露&#xff1f; phpinfo 函数是 PHP 中的一个内置函数&#xff0c;它用于输出关于 PHP 当前状态的大量信息。这些信息包括 PHP 版本、服务器信息、已加载的扩展、配置选项等众多细节。当 phpinfo 函数在一个可访问的…

HCIA-Access V2.5_3_1_1_VLAN技术原理_VLAN概述_VLAN产生的原因

本章导读 接入网设备大部分工作在二层网络&#xff0c;VLAN的产生为传统的LAN网络注入了新的活力&#xff0c;引起了LAN应用的一场变革。 本章介绍了在交换机中怎样配置VLAN&#xff0c;详细描述了VALN数据帧在交换机与交换机之间传递过程中的变化情况。 你可以带着这些问题…

springboot443旅游管理系统(论文+源码)_kaic

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统旅游管理系统信息管理难度大&#xff0c;容错率低&#…