LEEDCODE 707设计链表

cpp 复制代码
class MyLinkedList {
public:
    struct ListNode
    {
        int val;
        ListNode* next;
        ListNode(int val): val(val),next(nullptr){}
    };
    MyLinkedList() {
        _dummyhead = new ListNode(0);
        _size = 0;
    }
    
    int get(int index) {
        if(index >= 0 && index < _size){
            ListNode* cur = _dummyhead->next;
            for(int i = 0; i < index; i++){
                cur = cur->next;
            }
            return cur->val;
        }
        else
            return -1;
        
    }
    
    void addAtHead(int val) {
        addAtIndex(0,val);
    }
    
    void addAtTail(int val) {
        addAtIndex(_size,val);
    }
    
    void addAtIndex(int index, int val) {
        if(index < 0)
            index = 0;
        if(index <= _size && index >= 0 ){
            ListNode* pre = _dummyhead;
            ListNode* cur = _dummyhead->next;
            for(int i = 0;i < index; i++){
                pre = cur;
                cur = cur->next;
            }
            ListNode* p = new ListNode(val);
            p->next = cur;
            pre->next = p;
            _size +=1;
        }
            
    }
    
    void deleteAtIndex(int index) {
        if(index >= 0 && index < _size){
            ListNode* cur = _dummyhead;
            for(int i = 0; i < index; i++){
                cur = cur->next;
            }
            ListNode* p = cur->next;
            cur->next = p->next;
            delete p;
            _size -= 1;
        }
    }
private:
    ListNode* _dummyhead;
    int _size; // 正确声明 _size 成员变量
};

/**
 * 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);
 */
相关推荐
wabs6663 小时前
关于图论【卡码网117.软件构建的思考】
数据结构·算法·软件构建·图论·卡码网
Tongzhi20264 小时前
从部署到运维:通芝科技无感考勤一体机的全流程效率解析
运维·数据结构·科技·算法·贪心算法
小玮看世界8 小时前
[Python]线段树与二分法
数据结构·算法
青山木12 小时前
Hot 100 --- 在排序数组中查找元素的第一个和最后一个位置
java·数据结构·算法·leetcode
依然鸣14 小时前
PTA团体程序设计天梯赛L2真题讲解L2-045-048
数据结构·c++·经验分享·学习·算法·pat考试·pat
CQU_JIAKE15 小时前
8.5【A】
数据结构·算法
Jasmine_llq15 小时前
《P13016 [GESP202506 六级] 最大因数》
数据结构·算法
白狐_79816 小时前
考研408算法设计题保命策略:链表专题暴力解法精讲(2015 & 2019真题实战)
考研·算法·链表
凉茶钱18 小时前
【数据结构】C语言实现队列
c语言·数据结构
zander25819 小时前
34. 在排序数组中查找元素的第一个和最后一个位置:用两个边界定位区间
数据结构·算法·leetcode