Add Operation - Singly Linked List

Agar biz berilgan oldingi nodedan keyin yangi qiymat qo'oshmoqchi bo'lsak:

  1. Berilgan qiymat bilan yangi cur nodeni initialize qilishimiz kerak.

currently node
  1. cur nodening next fieldini oldingi nodedan keyingi nodega bog'lashimiz kerak.

link nodes
  1. prev ning next fieldini curga bog'laymiz:

link prev to cur

Massivdan farqli ravishda, qo'shilgan elementdan keyin barcha elementlarni ko'chirishimiz shart emas. Shu sababli, agar sizda prev(oldingisi)ga bog'langan element bo'lsa, O(1) vaqt murakkabligida linked listga yangi node qo'sha olasiz, bu juda samarali.

Misol

linked list example

Keling, 6 qiymatli 2-nodedan keyin yangi 9 qiymatli node qo'shamiz.

Biz birinchi 9 qiymatli yangi node ishga tushiramiz. Keyin node-9 ni node-15 ga bog'laymiz. Va oxiri, node-6 ni node-9 ga bog'laymiz.

Qo'shganimizdan keyin bizning linked listimiz quyidagicha ko'rinadi.

inserted linked list

Boshidan Node qo'shish

Bilamizki, biz butun listni ifodalash uchun bosh node head node dan foydalanamiz.

Demak, listni boshidan yangi qiymat qo'shganimizda head ni yangilash muhim.

  1. Yangi cur nodeni ishga tushiramiz.

  2. Yangi cur nodeimizni o'zimizning bosh node head nodega bog'laymiz.

  3. cur nodeni head node ga biriktiramiz.

Misol uchun, yangi node-9 ni linked listni boshidan qo'shamiz.

  1. 9 qiymatli yangi nodeni ishga tushiramiz va node-9 ni hozirgi head node node-23ga bog'laymiz.

link cur to head node
  1. node-9 ni yangi head node qilib belgilaymiz.

assign head node

Note

Ro'yxat oxiriga yangi tugun qo'shish haqida nima deyish mumkin? Shunga o'xshash strategiyadan foydalanishimiz mumkinmi?

© Leetcode link

Last updated

Was this helpful?