当前位置: 首页 > news >正文

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

  • 要求太多,代码量太大,实在难以完成

  • 在以前听说,好的程序员,可以在短时生成大量的代码,本题只方法才只有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.mrgr.cn/news/80129.html

相关文章:

  • MySQL有哪些高可用方案?
  • HuggingGPT Solving AI Tasks with ChatGPT and its Friends in Hugging Face 论文解读
  • Coturn 实战指南:WebRTC 中的 NAT 穿透利器
  • C语言-详细解答-重组字符串并16进制转10进制
  • 活动|华院计算董事长宣晓华应邀出席2024科创大会并作圆桌嘉宾
  • JAVA基础-深入理解Java内存模型(一)-- 重排序与先行发生原则(happens-before)
  • 从整个SecurityFilterChain的角度,一个请求经过Spring Security的流程
  • L23.【LeetCode笔记】验证回文串(剖析几种解法)
  • Spring 如何解决循环依赖?
  • Linux下socket广播通讯的实现
  • 图像融合算法笔记2024 CDTNet
  • pytorch_fid 安装笔记
  • 【AIGC】ChatGPT保护指令:高效提升GPTs提示词与知识库文件的安全性
  • 【PyCharm调试】显示一个对象值时会调用的方法
  • 长短期记忆神经网络(LSTM)介绍
  • 【ADS射频电路学习笔记】1. ADS基本操作
  • PHP搭建环境
  • depth wisepoint wise
  • 【收藏】Cesium 限制相机倾斜角(pitch)滑动范围
  • faster-RCNN训练【环境配置→自建数据集→训练→改错】
  • C语言实现八大排序算法
  • 【C语言】库函数常见的陷阱与缺陷(六):输入输出函数
  • kubeadm安装K8s集群之高可用组件keepalived+nginx及kubeadm部署
  • OSPF协议
  • ubuntu20.04复现 Leg-KILO
  • centos7的yum镜像源设置