Design Linked List

O'zingizning linked listingizn implementatsiyasini ishlab chiqing. Singly yoki Doubly linked listni tanlashingiz mumkin.

Singly linked listdagi nodeda 2ta attribut bo'lishi kerak: val va next. val nodening qiymati va next keyingi nodega pointer/reference(havola).

Agar doubly linked listdan foydalanishni xohlasangiz, linked listdagi oldingi nodeni ko'rsatib turadigan prev attributeni qo'shishingiz kerak. Linked listdagi barcha node 0-indexdan boshlanadi deb faraz qiling.

MyLinkedList classini amalga oshiring:

  • MyLinkedList() Initializes the MyLinkedList object.

  • int get(int index) Linked listdagi index-nodeni qaytaradi. Agar index yaroqli bo'lmasa -1 qaytaradi.

  • void addAtHead(int val) Linked listning birinchi elementidan oldin val qiymatli node qo'shadi. Qo'shgandan so'ng, yangi node linked listning birinchi nodei bo'ladi.

  • void addAtTail(int val) Linked listning oxirgi elementi sifatida val qiymatli node qo'shadi.

  • void addAtIndex(int index, int val) Linked listdagi index-nodedan olding valqiymayli nodeni qo'shishadi. Agar index linked list uzunligiga teng bo'lsa, node linked list oxiridan qo'shiladi. Agar uzunligidan kattaroq bo'lsa node qo'shilmaydi.

  • void deleteAtIndex(int index) Agar index yaroqli bo'lsa listdagi index-nodeni o'chiradi.

Constraints:

  • 0 <= index, val <= 1000

  • LinkedList qurib beruvchi kutubxonalardan foydalanmang,

  • get, addAtHead, addAtTail, addAtIndex va deleteAtIndexlarga ko'pi bilan 2000 ta qo'ng'iroq qilinadi.

My Solution

© Leetcode link

Last updated

Was this helpful?