美文网首页
leeetcode 707

leeetcode 707

作者: Ariana不会哭 | 来源:发表于2018-12-25 01:39 被阅读0次

C++

class MyLinkedList {
private:
    struct Node {
        int val;
        Node* next;
        Node(int a,Node* n) :val(a), next(n) {}
    };
    Node* head;
    int size;
public:

    /** Initialize your data structure here. */
    MyLinkedList() {
        head = NULL;
        size = 0;
    }

    /** Get the value of the index-th Node in the linked list. If the index is invalid, return -1. */
    int get(int index) {
        if (index >= size||index<0)
            return -1;
        Node* tt = head;
        for (int i = 0; i < index; i++) {
            tt = tt->next;
        }
        return tt->val;
    }

    /** Add a Node of value val before the first element of the linked list. After the insertion, the new Node will be the first Node of the linked list. */
    void addAtHead(int val) {
        Node* aa = new Node(val,head);
        head = aa;
        size++;
    }

    /** Append a Node of value val to the last element of the linked list. */
    void addAtTail(int val) {
        Node* tt = head;
        Node* aa=new Node(val, nullptr);
        if(tt==nullptr)
            head=aa;
        while (tt->next != nullptr) {
            tt = tt->next;
        }
        tt->next = aa;
        size++;
    }

    /** Add a Node of value val before the index-th Node in the linked list. If index equals to the length of linked list, the Node will be appended to the end of linked list. If index is greater than the length, the Node will not be inserted. */
    void addAtIndex(int index, int val) {
        if (index<0 || index>size)
            return;
        if (index == 0) {
            addAtHead(val);
            return;
        }
        Node* tt = head;
        for (int i = 0; i < index - 1; i++) {
            tt = tt->next;
        }
        tt->next = new Node(val, tt->next);
        size++;
    }

    /** Delete the index-th Node in the linked list, if the index is valid. */
    void deleteAtIndex(int index) {
        Node* tt = head;
        if (index<0 || index>=size)
            return;
        if (index == 0) {
            head = head->next;
            size--;
            return;
        }
        for (int i = 0; i < index - 1; i++) {
            tt = tt->next;
        }
        auto t1 = tt->next;
        tt->next = t1->next;
        delete(t1);
        size--;
    }
};

相关文章

  • leeetcode 707

    C++

  • 【29】公交车

    01 中午去上班,遇到一位问路大叔 大叔:请问一下,707在哪里乘坐? 我:707? 大叔:对,去西客站的707。...

  • 《707》

    707,是我来深圳继201、701、604、706后的第五个住处,目前为止是住的时间最长的,也是接待朋友最多的,我...

  • 707

    逼定金倒计时2了,拿了一天的手机眼睛到这会都不行了。今天下午打了好几个说在上班没说几句就给我挂了,所以等到大家都下...

  • 〔707〕

    2021/10/18 周一 晴10℃ 天气冷,翻箱倒柜给小孩找不到一条合适的裤子,我以为能穿的,结果都穿不上了...

  • 707

  • “707”妈妈的一席话

    20201007(626):“707”妈妈的一席话 自从今年的高考成绩公布以来,“707”在我们全县人们...

  • 婚姻是爱情的坟地。

    为❤moxia707求撩

  • 午夜“707”

    医院的急诊夜班就是在与死神打交道,时刻不停地与死神进行着拉锯战,挑战死神的底线。 救护车的鸣笛声...

  • 707计划

    6:50起床 7点半宝龙集合,发早单100份, 中午休息吃饭 2点开始收资源 目标:30 每小时5~7个 点位:万...

网友评论

      本文标题:leeetcode 707

      本文链接:https://www.haomeiwen.com/subject/njcxlqtx.html