707. 设计链表
1.34. 在排序数组中查找元素的第一个和最后一个位置2.69. x 的平方根3.367. 有效的完全平方数4.27. 移除元素5.26. 删除有序数组中的重复项6.283. 移动零7.844. 比较含退格的字符串8.977. 有序数组的平方9.209. 长度最小的子数组10.904. 水果成篮11.76. 最小覆盖子串12.76. 最小覆盖子串13.59. 螺旋矩阵 II14.58. 区间和(第九期模拟笔试)15.44. 开发商购买土地16.20. 有效的括号17.146. LRU 缓存18.203. 移除链表元素
19.707. 设计链表
20.206. 反转链表21.24. 两两交换链表中的节点22.19. 删除链表的倒数第 N 个结点23.19. 删除链表的倒数第 N 个结点 Plus24.面试题 02.07. 链表相交25.142. 环形链表 II26.242. 有效的字母异位词27.349. 两个数组的交集28.202. 快乐数29.1. 两数之和30.454. 四数相加 II31.383. 赎金信32.15. 三数之和33.18. 四数之和34.344. 反转字符串35.541. 反转字符串 II36.55. 右旋字符串(第八期模拟笔试)37.28. 找出字符串中第一个匹配项的下标38.459. 重复的子字符串39.232. 用栈实现队列40.225. 用队列实现栈41.20. 有效的括号心要细,这题才能作对。
class MyLinkedList { public: MyLinkedList() :_size(0), _head(new listedNode(0)) {} int get(int index) { if(index < 0 || index >= _size) return -1; listedNode* cur = _head; for(int i = 0; i <= index; ++i){ cur = cur->next; } return cur->value; } void addAtHead(int val) { addAtIndex(0, val); } void addAtTail(int val) { addAtIndex(_size, val); } void addAtIndex(int index, int val) { if(index < 0 || index > _size) return; listedNode* temp = new listedNode(val); listedNode* preNode = _head; for(int i = 0; i < index; ++i) preNode = preNode->next; temp->next = preNode->next; preNode->next = temp; ++_size; } void deleteAtIndex(int index) { if(index < 0 || index >= _size || _size == 0) return; --_size; listedNode* preNode = _head; for(int i = 0; i < index; ++i) preNode = preNode->next; listedNode* delNode = preNode->next; preNode->next= preNode->next->next; delete delNode; } private: struct listedNode{ int value; listedNode* next; listedNode(int val) :value(val), next(nullptr) {} }; int _size; listedNode* _head; };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?