news 2026/4/18 5:57:16

代码随想录第三天

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码随想录第三天

203 移除链表元素

了解链表申请节点,删除节点的基本操作。若不使用虚拟头结点,应该分头节点和中间节点两种情况。

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* removeElements(ListNode* head, int val) { ListNode* star = new ListNode(0); star->next = head; ListNode* cur = star; while (cur->next != NULL) { if(cur->next->val == val) { ListNode* tmp = cur->next; cur->next = cur->next->next; delete tmp; } else { cur = cur->next; } } head = star->next; delete star; return head; } };

707 设计链表

class MyLinkedList { public: struct ListNode { int val; // 节点存储的值 ListNode *next; // 指向下一个节点的指针 // 构造函数,方便创建节点 ListNode(int x) : val(x), next(nullptr) {} }; MyLinkedList() { star = new ListNode(0); size = 0; } int get(int index) { ListNode* flag = star->next; if(index < 0 || index >= size){ return -1; }else{ while(index){ flag = flag->next; index--; } return flag->val; } } void addAtHead(int val) { ListNode* newNode = new ListNode(val); newNode->next = star->next; star->next = newNode; size++; } void addAtTail(int val) { ListNode* newNode = new ListNode(val); ListNode* cur = star; while(cur->next != nullptr){ cur = cur->next; } cur->next = newNode; size++; } void addAtIndex(int index, int val) { ListNode* newNode = new ListNode(val); ListNode* flag = star; if(index >= 0 && index <= size){ while(index){ flag = flag->next; index--; } newNode->next = flag->next; flag->next = newNode; size++; } } void deleteAtIndex(int index) { ListNode* flag = star; if(index >= 0 && index < size){ while(index){ flag = flag->next; index--; } ListNode* cur = flag->next; flag->next = cur->next; delete cur; size--; } } private: int size; ListNode* star; }; /** * Your MyLinkedList object will be instantiated and called as such: * MyLinkedList* obj = new MyLinkedList(); * int param_1 = obj->get(index); * obj->addAtHead(val); * obj->addAtTail(val); * obj->addAtIndex(index,val); * obj->deleteAtIndex(index); */

206 反转链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* pre = NULL; ListNode* cur = head; while(cur){ ListNode* temp = cur->next; cur->next = pre; pre = cur; cur = temp; } return pre; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 5:55:12

GLM-OCR模型Java开发集成指南:SpringBoot微服务中的文档处理实战

GLM-OCR模型Java开发集成指南&#xff1a;SpringBoot微服务中的文档处理实战 最近在做一个企业内部的文档管理系统&#xff0c;客户提了个需求&#xff0c;说能不能自动把上传的发票、合同这些图片里的文字给提取出来&#xff0c;省得人工一个个去敲。这需求听着就挺实在的&am…

作者头像 李华
网站建设 2026/4/18 5:48:11

静态路由与动态路由实验报告

静态路由与动态路由实验报告* 一、实验基本信息 实验名称:静态路由、浮动静态路由、OSPF动态路由与ACL访问控制综合实验 实验目的: • 1. 实现学校内网PC通过域名访问百度HTTP服务器,掌握DNS域名解析配置方法。 • 2. 对192.168.1.0/24网段进行子网划分,通过ACL实现P…

作者头像 李华
网站建设 2026/4/18 5:45:34

ESP32联网获取天气数据,除了HTTP,你还可以试试这几种更省资源的方案

ESP32联网获取天气数据的5种高效方案对比与实战优化 当你的ESP32天气站项目从Demo走向实际部署时&#xff0c;HTTP请求的局限性开始显现&#xff1a;频繁的轮询导致电量快速消耗&#xff0c;不稳定的网络连接造成数据断层&#xff0c;复杂的JSON解析占用宝贵的内存资源。这些问…

作者头像 李华
网站建设 2026/4/18 5:44:13

如何生成ADDM报告_@addmrpt.sql自动数据库诊断监控工具

运行addmrpt.sql前须确认用户具备SELECT_CATALOG_ROLE&#xff08;需显式启用&#xff09;和ADVISOR权限&#xff0c;AWR快照区间内至少有两个含完整统计的连续快照&#xff0c;STATISTICS_LEVEL必须为TYPICAL或ALL&#xff0c;且需手动SPOOL指定输出路径。运行 addmrpt.sql 前…

作者头像 李华