LeetCode707 设计链表
创始人
2024-11-20 13:38:05
0

前言

题目:707. 设计链表
文档:代码随想录——设计链表
编程语言: C++
解题状态: 代码功底不够,只能写个大概

思路

主要考察对链表结构的熟悉程度,对链表的增删改查,比较考验代码功底以及对链表的掌握。本题中的一些边界条件也要注意。

代码

class MyLinkedList { public:     struct ListNode {         int val;         ListNode* next;         ListNode(int x) : val(x), next(nullptr) {}     };      MyLinkedList() {         _dummyHead = new ListNode(0);         _size = 0;     }          int get(int index) {         if (index > (_size - 1) || index < 0) {             return -1;         }          ListNode* cur = _dummyHead -> next;          while (index--) {             cur = cur -> next;         }          return cur -> val;     }          void addAtHead(int val) {         ListNode* newNode = new ListNode(val);          newNode -> next = _dummyHead -> next;         _dummyHead -> next = newNode;          _size++;     }          void addAtTail(int val) {         ListNode* newNode = new ListNode(val);         ListNode* cur = _dummyHead;          while (cur -> next != nullptr) {             cur = cur -> next;         }         cur -> next = newNode;          _size++;     }          void addAtIndex(int index, int val) {         if (index > _size) {             return;         }          ListNode* newNode = new ListNode(val);         ListNode* cur = _dummyHead;         while (index--) {             cur = cur -> next;         }         newNode -> next = cur -> next;         cur -> next = newNode;          _size++;     }          void deleteAtIndex(int index) {         if (index >= _size || index < 0) {             return;         }          ListNode* cur = _dummyHead;         while (index--) {             cur = cur -> next;         }         ListNode* tmp = cur -> next;         cur -> next = cur -> next -> next;         delete tmp;          _size--;     }      void printLinkedList() {         ListNode* cur = _dummyHead;         while (cur -> next != nullptr) {             cout << cur -> next -> val << " ";             cur = cur -> next;         }         cout << endl;     }  private:     int _size;     ListNode* _dummyHead; }; 

相关内容

热门资讯

什么是lst文件 .lst文件是一种列表文件,通常包含一系列文本或数据,用于存储和组织信息。这种文件格式常用于各种应用...
iwatch哪个版本好 iWatch即Apple Watch,不同版本适合不同需求。最新Series 7功能最全,但价格较高...
腾讯是什么端口 腾讯是一家中国领先的互联网服务公司,旗下拥有众多知名产品和服务,如社交平台微信和QQ、腾讯云、腾讯广...
5e对战平台如何快速升级 在5e对战平台快速升级,需要多玩游戏并提高自己的技能。通过获得高分数和胜利,可以提升等级。参加比赛和...
怎么给手机加密码的方法(手机加... 1. 数字密码:在设置中选择“锁屏和安全”或“安全”,然后选择“屏幕锁定方式”,输入4位或更多位数的...
推荐一款适合ps的笔记本电脑 适合PS的笔记本电脑应具备高性能处理器、大内存、高分辨率显示屏,推荐戴尔XPS 15,搭载i7处理器...
5e对战平台新手任务怎么完成-... 在5e对战平台,完成新手任务通常需进入相应任务页面,按照提示操作,如完成几局游戏、观看教程等。完成任...
苹果未受信任的企业级开发者在哪... 在设置中,选择“通用”-“描述文件”,找到对应的企业级应用,点击进入后,开启“信任”。苹果未受信任的...
5e对战平台怎么取回军需-取回... 在5e对战平台中,要取回军需,首先需要确保你的账户已经绑定了正确的Steam账号。进入平台的“库存”...
ipad怎么左右两个屏(平板分... 在iPad上进行分屏操作,首先确保你的设备支持多任务功能。打开第一个应用,从屏幕底部向上滑动,选择第...