707.设计链表
class MyLinkedList { public: //定义链表结构体 struct LinkedNode{ int val; LinkedNode* next; LinkedNode(int val):val(val),next(nullptr){} }; MyLinkedList(){ _head = new LinkedNode(0); len = 0; } int get(int index) { if(index>=len||index<0)return -1; LinkedNode* cnt=_head; while(index--)cnt=cnt->next; return cnt->next->val; } void addAtHead(int val) { LinkedNode* newNode = new LinkedNode(val); newNode->next = _head->next; _head->next = newNode; len++; } void addAtTail(int val) { LinkedNode* newNode=new LinkedNode(val); LinkedNode* cnt=_head; while(cnt->next!=nullptr)cnt=cnt->next; cnt->next=newNode; len++; } void addAtIndex(int index, int val) { if(index>len)return ; if(len==index){ addAtTail(val);return ; } else if(index<0){ addAtHead(val);return ; } LinkedNode* newNode=new LinkedNode(val); LinkedNode* cnt=_head; while(index--)cnt=cnt->next; newNode->next=cnt->next; cnt->next=newNode; len++; } void deleteAtIndex(int index) { if(index>=len||index<0)return ; LinkedNode* cnt=_head; while(index--)cnt=cnt->next; LinkedNode* tp=cnt->next; cnt->next=cnt->next->next; delete tp; len--; } private: int len; LinkedNode* _head; };
分类:
力扣
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理