40 najboljih pitanja i odgovora za intervju s povezanom listom (2026.)

Pitanja i odgovori za intervju s najpopularnijim linkovima

Priprema za intervju za strukturu podataka zahtijeva fokus na izazove. Pitanja za intervju s povezanom listom otkrivaju dubinu rjeลกavanja problema, logiku pokazivaฤa, svjesnost o pamฤ‡enju i kako kandidati rasuฤ‘uju kroz rubne sluฤajeve.

Savladavanje povezanih popisa otvara uloge u razliฤitim proizvodnim timovima, platformama i sistemskom inลพenjerstvu. Praktiฤno iskustvo gradi snaลพnu tehniฤku struฤnost, analitiฤko razmiลกljanje i ฤiste navike kodiranja. Od poฤetnika do starijih profesionalaca, ovaj skup vjeลกtina podrลพava stvarno otklanjanje pogreลกaka, analizu performansi, mentoriranje mlaฤ‘ih studenata i suradnju s menadลพerima na skalabilnim rjeลกenjima koristeฤ‡i napredne koncepte iz iskustva.
ฤŒitaj viลกeโ€ฆ

๐Ÿ‘‰ Besplatno preuzimanje PDF-a: Povezani popis pitanja i odgovora za intervju

Pitanja i odgovori za intervju s najpopularnijim linkovima

1) Objasnite ลกto je povezana lista i kako se razlikuje od niza.

A povezan popis je linearna struktura podataka u kojoj su elementi, nazvani ฤvorovi, povezani pomoฤ‡u pokazivaฤa ili referenci. Svaki ฤvor sadrลพi podatke i pokazivaฤ/referencu na sljedeฤ‡i ฤvor na popisu. Za razliku od nizova, povezani popisi ne pohranjuju elemente u susjednu memoriju.

Kljuฤne razlike izmeฤ‘u povezane liste i niza:

svojstvo Povezani popis Poredak
Dodjela memorije Dinamiฤan statiฤki
Vrijeme pristupa elementu O (n) O (1)
Umetanje/brisanje Uฤinkovit (na bilo kojoj poziciji) Skupo (potrebno premjeลกtanje)
Optereฤ‡enje memorije Dodatni prostor za pokazivaฤe Nema dodatnog pokazivaฤa iznad glave

Ukratko, povezane liste ลพrtvuju brลพe umetanje i dinamiฤko dimenzioniranje za sporiji nasumiฤni pristup i dodatno optereฤ‡enje memorijom zbog pokazivaฤa.


2) Koje su razliฤite vrste povezanih popisa?

Postoje nekoliko vrsta povezanih lista, a anketari vas ฤesto traลพe da ih razlikujete:

  • Jednostruko povezana lista: Svaki ฤvor pokazuje samo na sljedeฤ‡i ฤvor.
  • Dvostruko povezani popis: ฤŒvorovi imaju dva pokazivaฤa: jedan na sljedeฤ‡i i jedan na prethodni ฤvor.
  • Kruลพna povezana lista: Posljednji ฤvor pokazuje natrag na prvi ฤvor, tvoreฤ‡i petlju.
  • Dvostruko kruลพna povezana lista: Kombinira kruลพne i dvostruko povezane liste.

Svaka vrsta ima razliฤite sluฤajeve upotrebe na temelju potreba za prolaskom i memorijom. Na primjer, dvostruko povezane liste omoguฤ‡uju jednostavno prolaลพenje unatrag po cijenu dodatnih pokazivaฤa.


3) Kako obrnuti jednostruko povezanu listu? (Pristup kodiranju)

RevKoriลกtenje povezane liste klasiฤno je pitanje na intervjuu. Cilj je promijeniti smjer pokazivaฤa tako da se lista obrne na mjestu bez dodjeljivanja novih ฤvorova.

Kljuฤna ideja:
Koristite tri pokazivaฤa โ€” prev, curri next โ€” i iterirajte kroz popis. U svakom koraku preusmjerite curr.next do prev, zatim pomaknite sve pokazivaฤe naprijed.

ListNode reverseList(ListNode head) {
    ListNode prev = null;
    ListNode curr = head;
    while (curr != null) {
        ListNode next = curr.next;
        curr.next = prev;
        prev = curr;
        curr = next;
    }
    return prev; // New head
}

Ovo transformira povezanu strukturu bez dodatnog prostora i pokreฤ‡e se O (n) vrijeme.


4) Objasnite tehniku โ€‹โ€‹โ€‹โ€‹dvostrukog pokazivaฤa za pronalaลพenje sredine povezane liste.

Najuฤinkovitiji naฤin za pronalaลพenje srednjeg ฤvora povezane liste je koriลกtenje dva pokazivaฤa:

  • A spori pokazivaฤ pomiฤe jedan ฤvor odjednom.
  • A brzi pokazivaฤ pomiฤe dva ฤvora odjednom.

Kada brzi pokazivaฤ doฤ‘e do kraja, spori pokazivaฤ ฤ‡e biti na sredini. Ova tehnika djeluje u O (n) vrijeme bez dodatnog prostora.


5) Kako biste otkrili ciklus u povezanoj listi?

Detekcija ciklusa je joลก jedan klasiฤan problem. Standardno rjeลกenje koristi Floydov algoritam kornjaฤe i zeca:

  • Potez slow pointer korak po korak.
  • Potez fast pointer dva koraka odjednom.
  • Ako lista ima ciklus, dva pokazivaฤa ฤ‡e se susresti.

Ako brzi pokazivaฤ dosegne null, lista nema ciklus. Ova metoda se izvrลกava u O (n) vrijeme i O (1) prostor.


6) Koje su prednosti i nedostaci povezanih popisa?

Povezane liste nude nekoliko prednosti i nedostataka:

Prednosti Nedostaci
Dinamiฤka veliฤina Nema sluฤajnog pristupa
Jednostavno umetanje/brisanje Dodatna memorija za pokazivaฤe
Uฤinkovito za rastuฤ‡e podatke Loลกe performanse predmemorije

Povezane liste dobro funkcioniraju za dinamiฤke podatke, ali mogu biti sporije od nizova za pristup elementima jer svaki pristup zahtijeva prolazak od poฤetka do kraja.


7) Kako spojiti dvije sortirane povezane liste?

Spajanje dvaju sortiranih popisa joลก je jedan ฤest problem u intervjuu. Ideja je istovremeno proฤ‡i kroz oba popisa i izgraditi novi sortirani popis odabirom manjeg ฤvora s bilo kojeg popisa u svakom koraku.

ListNode mergeTwoLists(ListNode l1, ListNode l2) {
    ListNode dummy = new ListNode(0);
    ListNode tail = dummy;
    while (l1 != null && l2 != null) {
        if (l1.val < l2.val) {
            tail.next = l1;
            l1 = l1.next;
        } else {
            tail.next = l2;
            l2 = l2.next;
        }
        tail = tail.next;
    }
    tail.next = (l1 != null) ? l1 : l2;
    return dummy.next;
}

Ova metoda ฤuva sortirani redoslijed i izvrลกava se u O(n + m) vrijeme za liste duljina n i m.


8) Objasnite kako izbrisati N-ti ฤvor s kraja povezane liste.

Najuฤinkovitija tehnika koristi dva pokazivaฤa odvojeni s n ฤvorova. Pomaknite prvi pokazivaฤ za n koraka, a zatim pomaknite oba pokazivaฤa dok prvi ne doฤ‘e do kraja. Drugi pokazivaฤ ฤ‡e tada biti neposredno prije ciljnog ฤvora.

Time se izbjegava zasebno izraฤunavanje duljine popisa i dovrลกava se u O (n) vrijeme. Takoฤ‘er obraฤ‘uje rubne sluฤajeve poput uklanjanja prvog ฤvora.


9) Kolika je vremenska sloลพenost pristupa k-tom elementu u povezanoj listi?

Pristupanje datoteci k-ti element u povezanoj listi zahtijeva prolazak od poฤetka dok se ne doฤ‘e do k-ti ฤvor. Buduฤ‡i da povezane liste ne omoguฤ‡uju izravno indeksiranje, to koลกta O (n) vrijeme u najgorem sluฤaju.

Nasuprot tome, nizovi podrลพavaju izravno indeksiranje u O (1) vrijeme.


10) Zaลกto biste koristili povezanu listu umjesto niza?

Povezane liste su posebno korisne kada:

  • Oฤekujete ฤesta umetanja i brisanja na proizvoljnim pozicijama.
  • Ne znate unaprijed veliฤinu svojih podataka.
  • Fragmentacija memorije oteลพava kontinuiranu alokaciju memorije.

Podrลพavaju uฤinkovitu dinamiฤku alokaciju memorije i umetanje/brisanje u konstantnom vremenu na kraju liste ili s poznatom referencom ฤvora - prednosti koje nizovi ne mogu postiฤ‡i.


11) Koje su primjene povezanih popisa u stvarnom svijetu?

Povezane liste se ลกiroko koriste u sustavima gdje dinamiฤka dodjela memorije, ฤesta umetanja, ili strukture podataka promjenjive veliฤine su obavezni. Implementirani su u nekoliko temeljnih koncepata i primjena raฤunalne znanosti kao ลกto su:

  • Dinamiฤko upravljanje memorijom (koristi se u operativnim sustavima)
  • Funkcije poniลกtavanja/ponovljivanja u ureฤ‘ivaฤima teksta
  • Ulanฤavanje hash tablica za rjeลกavanje sudara
  • Navigacija popisa pjesama za reprodukciju glazbe ili videozapisa
  • Reprezentacija susjednosti grafa
  • Polinomske aritmetiฤke operacije

Ovi primjeri istiฤu kako povezane liste pruลพaju fleksibilnost i uฤinkovitu manipulaciju nizovima tamo gdje bi promjena veliฤine niza bila skupa.


12) Objasnite razliku izmeฤ‘u jednostruko i dvostruko povezane liste.

svojstvo Pojedinaฤno povezani popis Dvostruko povezana lista
upuฤ‡uje 1 (samo sljedeฤ‡i ฤvor) 2 (prethodni i sljedeฤ‡i)
obuhvaฤ‡anje Samo jedan smjer Oba smjera
Memorija Obiฤaj Less (samo jedan pokazivaฤ) Viลกe (dodatni pokazivaฤ)
brisanje Teลพe (potreban prethodni ฤvor) Jednostavnije
Primjer upotrebe Implementacija stoga Navigacija povijesti preglednika

A dvostruko povezana lista je svestraniji, ali troลกi dodatnu memoriju. Nasuprot tome, pojedinaฤno povezane liste lagani su i uฤinkoviti za jednosmjerni prolaz.


13) Kako ukloniti duplikate iz sortirane povezane liste?

Kada je povezana lista veฤ‡ sortirana, duplikati ฤ‡e biti susjedni.

Proฤ‘ite kroz popis i usporedite podatke svakog ฤvora sa sljedeฤ‡im ฤvorom. Ako se podudaraju, preskoฤite sljedeฤ‡i ฤvor.

void removeDuplicates(ListNode head) {
    ListNode current = head;
    while (current != null && current.next != null) {
        if (current.val == current.next.val) {
            current.next = current.next.next;
        } else {
            current = current.next;
        }
    }
}

Sloลพenost: O(n) vremena i O(1) prostora.

Za nesortirane popise, HashSet se moลพe koristiti za praฤ‡enje viฤ‘enih vrijednosti.


14) Koja je razlika izmeฤ‘u linearne i kruลพne povezane liste?

svojstvo Linearna povezana lista Kruลพni povezani popis
Posljednji ฤvor Bodovi za NULL Ukazuje na glavni ฤvor
obuhvaฤ‡anje Zavrลกava kada next == NULL Neprekidni prolaz
Koristite sluฤaj Stog, Red ฤekanja Kruลพno rasporeฤ‘ivanje
Sloลพenost jednostavnije Sloลพenije rukovanje

Kruลพne liste su posebno korisne u primjenama kao ลกto je rasporeฤ‘ivanje CPU-a, gdje se procesi cikliฤki izvrลกavaju.


15) Kako se pronalazi presjek dviju povezanih lista?

Da biste utvrdili sijeku li se dvije jednostruko povezane liste:

  1. Izraฤunajte duljine oba popisa.
  2. Pomakni pokazivaฤ duลพeg popisa za razliku u duljinama.
  3. Prolazite obje liste istovremeno dok ฤvorovi ne postanu identiฤni.

Alternativno, a HashSet moลพe se koristiti za pohranjivanje posjeฤ‡enih ฤvorova za O(n) prostora.

Ovaj pristup je uฤinkovit i ฤesto se postavlja u intervjuima za rukovodeฤ‡e pozicije.


16) Kako provjeriti jesu li dvije povezane liste identiฤne?

Dvije povezane liste su identiฤne ako:

  • Imaju isti broj ฤvorova.
  • Odgovarajuฤ‡e vrijednosti ฤvorova su identiฤne po redoslijedu.

Algoritam:

  1. Pregledajte oba popisa zajedno.
  2. Usporedite podatke svakog ฤvora.
  3. Ako se svi parovi podudaraju i oba dosegnu NULL, identiฤni su.

Vremenska sloลพenost: O (n)

Sloลพenost prostora: O (1)


17) ล to je curenje memorije u kontekstu povezanih lista?

A curenje memorije dogaฤ‘a se kada dinamiฤki dodijeljeni ฤvorovi nisu osloboฤ‘eni nakon upotrebe.

U povezanim listama, ako delete or free() ne poziva se na ฤvorovima uklonjenim s popisa, memorija ostaje zauzeta iako viลกe nije dostupna.

Na primjer, neuspjeh u oslobaฤ‘anju izbrisanih ฤvorova u C/C++ dovodi do postupnog iscrpljivanja memorije, ลกto uzrokuje usporavanje ili pad sustava.

Pravilno ฤiลกฤ‡enje pomoฤ‡u destruktora ili eksplicitne dealokacije izbjegava ovaj problem.


18) Objasnite kako implementirati stog pomoฤ‡u povezane liste.

U stog, elementi slijede LIFO redoslijed (Last In, First Out - zadnji unutra, prvi van).

Povezana lista je idealna jer se umetanja i brisanja uฤinkovito dogaฤ‘aju na poฤetku.

Operaticije:

  • Gurnuti: Umetnite novi ฤvor na zaglavlje.
  • Pop: Uklonite ฤvor s glave.
  • Zaviriti: Vrati podatke o glavi.

Prednosti:
Nema potrebe za nizom fiksne veliฤine; raste dinamiฤki kako se elementi dodaju.


19) Kako se povezana lista moลพe koristiti za implementaciju reda ฤekanja?

U red, elementi slijede FIFO (First In, First Out) redoslijed.

Koristite povezanu listu gdje:

  • Umetanje (Dodaj u red): Dodajte ฤvor na repu.
  • Ukloni (Decomposite Reach): Izbriลกi ฤvor iz glave.

To omoguฤ‡uje obje operacije u O (1) vrijeme s dva pokazivaฤa โ€” front i rear.

Obiฤno se koristi u sustavima za rasporeฤ‘ivanje procesa i redovima ฤekanja pisaฤa.


20) Koje su razlike izmeฤ‘u niza popisa i povezanog popisa u Java?

Aspekt ArrayList LinkedList
ฤŒuvanje Dinamiฤki niz Dvostruko povezana lista
Vrijeme pristupa O (1) O (n)
Umetni/Izbriลกi Skupo u sredini Uฤinkovito na kraju
Optereฤ‡enje memorije Less Viลกe (dodatni savjeti)
Koristite sluฤaj ฤŒesti pristup ฤŒesto umetanje/brisanje

Primjer: Koristiti ArrayList za operacije s velikim brojem pretraga i LinkedList kada dominiraju operacije umetanja/brisanja.


21) Kako izravnati viลกerazinsku povezanu listu?

A viลกerazinska povezana lista moลพe sadrลพavati ฤvorove koji imaju oboje next i child pokazivaฤi (svako dijete vodi do druge povezane liste). Cilj je izravnati sve ฤvorove u povezanu listu jedne razine.

Pristup:

  1. Koristiti stog or rekurzivna funkcija.
  2. Poฤnite od glavnog ฤvora.
  3. Ako ฤvor ima childgurni ga next ฤvor na stog i napravi child as next.
  4. Nastavite dok se stog ne isprazni.

Sloลพenost vremena: O (n)

Sloลพenost prostora: O(n) za rekurziju/slog.

Primjer (konceptualno):

1 - 2 - 3
    |
    4 - 5
Flattened โ†’ 1 โ†’ 2 โ†’ 4 โ†’ 5 โ†’ 3

Ovo pitanje procjenjuje vaลกe razumijevanje rekurzije i manipulacije pokazivaฤima.


22) Kako klonirati povezanu listu sa sluฤajnim pokazivaฤima?

Svaki ฤvor u ovoj posebno povezanoj listi ima dva pokazivaฤa:

  • next โ†’ pokazuje na sljedeฤ‡i ฤvor.
  • random โ†’ pokazuje na bilo koji proizvoljni ฤvor.

Algoritam (3 koraka):

  1. Umetnite klonirane ฤvorove izmeฤ‘u originalnih ฤvorova.
  2. Dodijelite sluฤajne pokazivaฤe za klonove (clone.random = original.random.next).
  3. Odvojite dva popisa.

Time se izbjegava dodatni prostor za hash mapu i izvrลกava se u O (n) vrijeme sa O (1) dodatni prostor.

Sluฤaj upotrebe: Dubinsko kopiranje sloลพenih struktura podataka (npr. grafova ili referenci objekata).


23) ล to je lista za preskakanje i kako je povezana s povezanim listama?

A popis za preskakanje je slojevita struktura povezanih lista koja omoguฤ‡uje brzo pretraลพivanje, umetanje i brisanje (sliฤno uravnoteลพenim stablima).

OperaANJE Prosjeฤno vrijeme Najgori sluฤaj
Traลพi O (zapisnik n) O (n)
Umetni/Izbriลกi O (zapisnik n) O (n)

Sadrลพi viลกe razina, gdje gornje razine "preskaฤu" nekoliko ฤvorova, poboljลกavajuฤ‡i uฤinkovitost pretraลพivanja.

Primjer: Koristi se u bazama podataka poput Redisa i istovremenim implementacijama mapa.


24) Kako moลพete otkriti palindrom u povezanoj listi?

Povezana lista je palindrom ako se ฤita isto unaprijed i unatrag.

Algoritam:

  1. Pronaฤ‘ite sredinu popisa.
  2. Revprije druge polovice.
  3. Usporedite dvije polovice ฤvor po ฤvor.

Ako se svi odgovarajuฤ‡i ฤvorovi podudaraju, to je palindrom.

Primjer:

1 โ†’ 2 โ†’ 3 โ†’ 2 โ†’ 1 โ†’ โœ… Palindrom

1 โ†’ 2 โ†’ 3 โ†’ 4 โ†’ โŒ Nije palindrom

Sloลพenost vremena: O (n)

Sloลพenost prostora: O (1)


25) Kako ukloniti petlju u povezanoj listi?

Ako postoji petlja (koriลกtenjem Floydovog detektiranja ciklusa), uklonite je slijedeฤ‡i ove korake:

  1. Otkrijte mjesto susreta sporih i brzih pokazivaฤa.
  2. Pomaknite jedan pokazivaฤ prema glavi.
  3. Pomiฤite oba pokazivaฤa korak po korak dok se ne sretnu u poฤetni ฤvor petlje.
  4. Postavi prethodni ฤvor next do null.

Ovaj pristup osigurava da nema dodatne upotrebe memorije prilikom rjeลกavanja ciklusa.


26) Koji su razliฤiti naฤini predstavljanja povezanih lista u memoriji?

Povezane liste mogu se predstaviti u tri glavna naฤina:

Vrsta reprezentacije Description Primjer upotrebe
Dinamiฤki ฤvorovi Svaki ฤvor dinamiฤki dodijeljen i povezan C, C++
Statiฤka reprezentacija niza Koristi indekse polja umjesto pokazivaฤa Ugraฤ‘eni sustavi
Povezani objekti Objektno orijentirana reprezentacija s klasama Java, Python

Svaki pristup odgovara razliฤitim okruลพenjima - na primjer, liste temeljene na nizovima koriste se kada je manipulacija pokazivaฤem ograniฤena.


27) Kako moลพete pronaฤ‡i duljinu povezane liste (iterativne i rekurzivne)?

Iterativni pristup:

int getLength(ListNode head) {
    int count = 0;
    while (head != null) {
        count++;
        head = head.next;
    }
    return count;
}

Rekurzivni pristup:

int getLength(ListNode head) {
    if (head == null) return 0;
    return 1 + getLength(head.next);
}

Oba pristupa imaju O (n) vremenska sloลพenost; rekurzija dodaje O (n) prostor optereฤ‡en zbog steka poziva.


28) Objasnite koncept kruลพnih dvostruko povezanih lista s primjerom.

U kruลพna dvostruko povezana lista, svaki ฤvor ima dvije veze - jednu prema sljedeฤ‡em i jednu prema prethodnom - a posljednjeg ฤvora next pokazuje na glavu, dok je glava prev ukazuje na posljednji ฤvor.

Primjeri sluฤajeva upotrebe:

  • Operativni sustavi u stvarnom vremenu (kruลพno rasporeฤ‘ivanje)
  • Petlja glazbene playliste
  • Navigacija izmeฤ‘u kartica ili slajdova

Prednosti:

  • Dvosmjerni obilazak.
  • Nema nultih referenci.
  • Uฤinkovito umetanje i brisanje.

29) Kako se briลกu alternativni ฤvorovi u povezanoj listi?

Algoritam:

  1. Poฤnite od glave.
  2. Izbriลกite svaki drugi ฤvor prilagoฤ‘avanjem pokazivaฤa.
  3. Nastavite dok se popis ne zavrลกi.

Primjer:

Input: 1 โ†’ 2 โ†’ 3 โ†’ 4 โ†’ 5  
Output: 1 โ†’ 3 โ†’ 5

Sloลพenost:

  • Vrijeme: O(n)
  • Prostor: O(1)

Ovo provjerava razumijevanje sigurnosti prolaska pokazivaฤa i brisanja.


30) Kako moลพete pronaฤ‡i n-ti ฤvor s poฤetka i s kraja povezane liste?

S poฤetka: Prolazite kroz listu dok broj ne bude = n.

Od kraja: Koristite dva pokazivaฤa.

  1. Pomakni prvi pokazivaฤ n koraka naprijed.
  2. Pomiฤite oba istovremeno dok prvi ne dosegne nulu.
  3. Drugi pokazivaฤ sada pokazuje na n-ti ฤvor od kraja.

Sloลพenost vremena: O (n)

Sloลพenost prostora: O (1)

Ovaj pristup izbjegava zasebno izraฤunavanje duljine, ลกto poboljลกava uฤinkovitost.


31) Kako se mijenja redoslijed povezane liste?

Problem: S obzirom na popis L0 โ†’ L1 โ†’ โ€ฆ โ†’ Ln-1 โ†’ Ln, promijenite redoslijed kao L0 โ†’ Ln โ†’ L1 โ†’ Ln-1 โ†’ L2 โ†’ Ln-2 โ†’ โ€ฆ

Koraci:

  1. Pronaฤ‘ite sredinu popisa.
  2. Revprije druge polovice.
  3. Spojite dvije polovice naizmjeniฤno.

Primjer:

Input: 1 โ†’ 2 โ†’ 3 โ†’ 4 โ†’ 5  
Output: 1 โ†’ 5 โ†’ 2 โ†’ 4 โ†’ 3

Sloลพenost: O(n) vremena, O(1) prostora.

Ovo testira viลกe operacija povezanih lista u jednom pitanju.


32) Kako particionirate povezanu listu oko zadane vrijednosti x?

Cilj:
Preuredi ฤvorove tako da svi ฤvorovi manji od x dolaze prije ฤvorova veฤ‡ih ili jednakih od x.

Pristup:

  • Odrลพavajte dvije laลพne liste: before i after.
  • Proฤ‘ite kroz izvornu listu i dodajte ฤvorove odgovarajuฤ‡im listama.
  • Spojite ih na kraju.

Primjer:

Input: 3 โ†’ 5 โ†’ 8 โ†’ 5 โ†’ 10 โ†’ 2 โ†’ 1, x = 5  
Output: 3 โ†’ 2 โ†’ 1 โ†’ 5 โ†’ 8 โ†’ 5 โ†’ 10

Ovo se ฤesto traลพi za procjenu sposobnosti preureฤ‘enja podataka.


33) Kako sortirate povezanu listu?

Buduฤ‡i da povezane liste ne podrลพavaju sluฤajni pristup, Spoji sortiranje je najbolji izbor.

Koraci:

  1. Podijelite popis na polovice koristeฤ‡i spore/brze pokazivaฤe.
  2. Rekurzivno sortiraj svaku polovicu.
  3. Spoji sortirane polovice.

Prednosti:

  • O(n log n) vremena.
  • O(1) dodatnog prostora (za iterativnu verziju).

Za razliku od nizova, QuickSort je neuฤinkovit za povezane liste zbog sloลพenosti preureฤ‘enja pokazivaฤa.


34) Koja je razlika izmeฤ‘u jednostruko, dvostruko i kruลพno povezanih lista?

svojstvo Pojedinaฤno Dvostruko Kruลพni
linkovi Jedan (sljedeฤ‡i) Dva (prethodna i sljedeฤ‡a) Posljednji ฤvor spaja se s glavom
obuhvaฤ‡anje Samo naprijed Naprijed i nazad Moguฤ‡e beskonaฤno kretanje
Umetanje/brisanje Umjereno Lakลกe s obje strane Obrada posebnih sluฤajeva
Koristite sluฤaj Stog, Red ฤekanja Poniลกti operacije Kruลพno rasporeฤ‘ivanje

Ovo pitanje usporedbe ฤesto se ฤini kao provjera konceptualne jasnoฤ‡e.


35) Kako se pronalazi presjek dviju kruลพnih povezanih lista?

Ovo je proลกirenje problema raskriลพja.

Algoritam:

  1. Otkrij ima li svaka lista petlju.
  2. Ako su oba acikliฤka โ†’ koristite standardni algoritam presjeka.
  3. Ako su oba cikliฤka โ†’ pronaฤ‘ite poฤetak petlje za svaku i provjerite jesu li isti ili povezani.

Ovaj problem kombinira detekcija ciklusa i logika presjeka, testiranje viลกekonceptualnog zakljuฤivanja.


36) Objasnite kako umetnuti ฤvor u sortiranu povezanu listu.

Koraci:

  1. Stvorite novi ฤvor s danom vrijednoลกฤ‡u.
  2. Pomiฤite se dok ne pronaฤ‘ete ispravan poloลพaj.
  3. prilagoditi next pokazivaฤe u skladu s tim.

Primjer:

Input: 1 โ†’ 3 โ†’ 5 โ†’ 7, Insert 4  
Output: 1 โ†’ 3 โ†’ 4 โ†’ 5 โ†’ 7

Ovo je osnovni manipulacijski problem za testiranje razumijevanja podeลกavanja pokazivaฤa.


37) Kako podijeliti povezanu listu na dvije polovice?

Algoritam:

  • Koristite metodu sporog i brzog pokazivaฤa.
  • Kada fast doฤ‘e do kraja, slow bit ฤ‡e na sredini.
  • Podijeli se na tom ฤvoru.

Primjer:

Input: 1 โ†’ 2 โ†’ 3 โ†’ 4 โ†’ 5  
Output: 1 โ†’ 2 โ†’ 3  and  4 โ†’ 5

Ova operacija je ฤesto prvi korak sortiranja spajanjem povezanih lista.


38) Kako pronaฤ‡i posljednju pojavu vrijednosti u povezanoj listi?

Kreฤ‡ite se kroz popis prateฤ‡i posljednji ฤvor u kojem se nalazi ciljna vrijednost.

Pseudokod:

ListNode findLastOccurrence(ListNode head, int val) {
    ListNode result = null;
    while (head != null) {
        if (head.val == val) result = head;
        head = head.next;
    }
    return result;
}

Sloลพenost: O (n)

Ovo provjerava razumijevanje linearnog obilaska i provjere uvjeta.


39) Kako moลพete ukloniti sva pojavljivanja zadanog kljuฤa iz povezane liste?

Algoritam:

  1. Prvo obradi glavne ฤvorove ako sadrลพe ciljni kljuฤ.
  2. Zatim proฤ‘ite kroz i izbriลกite sljedeฤ‡e ฤvorove koji sadrลพe kljuฤ.

Primjer:

Input: 1 โ†’ 2 โ†’ 6 โ†’ 3 โ†’ 4 โ†’ 5 โ†’ 6, Key = 6  
Output: 1 โ†’ 2 โ†’ 3 โ†’ 4 โ†’ 5

Sloลพenost: O (n)

Ovo pokazuje poznavanje rubnih sluฤajeva (posebno brisanja glava).


40) Koje su kljuฤne razlike izmeฤ‘u podatkovnih struktura stoga i povezanih popisa?

svojstvo Stog Povezani popis
Vrsta pristupa LIFO (zadnji uลกao, prvi izaลกao) Sekvencijalno
Izvrลกenje Niz ili povezana lista Temeljeno na ฤvorovima
Operama Guranje/Popucavanje Umetni/Izbriลกi/Pomakni
Fleksibilnost Ograniฤeni pristup Fleksibilan pristup
Koristite sluฤaj Upravljanje pozivima funkcija Dinamiฤko rukovanje podacima

Stog se moลพe implementirati koriลกtenjem povezane liste, ali se razlikuju po konceptu - stog ima ograniฤen pristup, dok je povezana lista struktura opฤ‡e namjene.


๐Ÿ” Popis najpopularnijih pitanja za intervju s realnim scenarijima i strateลกkim odgovorima

1) ล to je povezana lista i po ฤemu se razlikuje od niza?

Oฤekivano od kandidata: Anketar ลพeli procijeniti vaลกe razumijevanje osnovnih struktura podataka i vaลกu sposobnost usporeฤ‘ivanja kompromisa.

Primjer odgovora: Povezana lista je linearna struktura podataka u kojoj su elementi, nazvani ฤvorovi, povezani pokazivaฤima. Svaki ฤvor sadrลพi podatke i referencu na sljedeฤ‡i ฤvor. Za razliku od nizova, povezane liste ne zahtijevaju susjednu memoriju i omoguฤ‡uju dinamiฤku promjenu veliฤine, ali imaju sporije vrijeme pristupa jer elementi nisu indeksirani.


2) Kada biste u stvarnoj primjeni odabrali povezanu listu umjesto niza?

Oฤekivano od kandidata: Oni procjenjuju vaลกu praktiฤnu prosudbu u odabiru odgovarajuฤ‡ih struktura podataka.

Primjer odgovora: Odabrao bih povezanu listu kada su potrebna ฤesta umetanja i brisanja, posebno u sredini skupa podataka. U prethodnoj ulozi radio sam na znaฤajki rasporeฤ‘ivanja zadataka gdje su se zadaci ฤesto dodavali i uklanjali, a povezana lista pruลพala je bolje performanse od polja.


3) Moลพete li objasniti razliku izmeฤ‘u jednostruko povezanih i dvostruko povezanih lista?

Oฤekivano od kandidata: Ispitivaฤ ลพeli provjeriti vaลกu konceptualnu jasnoฤ‡u i sposobnost jasnog objaลกnjavanja tehniฤkih razlika.

Primjer odgovora: Jednostruko povezana lista ima ฤvorove koji pokazuju samo na sljedeฤ‡i ฤvor, dok dvostruko povezana lista ima ฤvorove koji pokazuju i na sljedeฤ‡i i na prethodni ฤvor. Dvostruko povezane liste omoguฤ‡uju lakลกe kretanje unatrag, ali zahtijevaju viลกe memorije zbog dodatnog pokazivaฤa.


4) Kako biste otkrili ciklus u povezanoj listi?

Oฤekivano od kandidata: Ovo testira vaลกe vjeลกtine rjeลกavanja problema i poznavanje uobiฤajenih algoritamskih obrazaca.

Primjer odgovora: Uobiฤajeni pristup je koriลกtenje dvaju pokazivaฤa koji se kreฤ‡u razliฤitim brzinama, ฤesto nazvan tehnikom sporog i brzog pokazivaฤa. Ako postoji ciklus, dva pokazivaฤa ฤ‡e se na kraju susresti. Na prethodnoj poziciji koristio sam ovaj pristup kako bih sprijeฤio beskonaฤne petlje u cjevovodu obrade podataka.


5) Koje se uobiฤajene operacije izvode na povezanim listama?

Oฤekivano od kandidata: Anketar ลพeli vidjeti razumijete li standardne operacije i njihove implikacije.

Primjer odgovora: Uobiฤajene operacije ukljuฤuju umetanje, brisanje, prolazak kroz popis, pretraลพivanje i preokretanje. Svaka operacija ima razliฤitu vremensku sloลพenost ovisno o tome gdje se izvodi, ลกto je vaลพno pri dizajniranju uฤinkovitih sustava.


6) Kako se rjeลกava umetanje ฤvora u sredinu povezane liste?

Oฤekivano od kandidata: Provjeravaju vaลกe razumijevanje manipulacije pokazivaฤem i paลพnju prema detaljima.

Primjer odgovora: Za umetanje ฤvora u sredinu, prvo se kreฤ‡em kroz popis kako bih pronaลกao ciljni poloลพaj, a zatim prilagoฤ‘avam pokazivaฤe tako da novi ฤvor pokazuje na sljedeฤ‡i ฤvor, a prethodni ฤvor na novi ฤvor. Paลพljivo aลพuriranje pokazivaฤa kljuฤno je kako bi se izbjeglo naruลกavanje popisa.


7) Opiลกite situaciju u kojoj je povezana lista uzrokovala probleme s performansama i kako ste je rijeลกili.

Oฤekivano od kandidata: Ovo bihevioralno pitanje procjenjuje vaลกu sposobnost promiลกljanja i optimizacije.

Primjer odgovora: Na mom prethodnom poslu, povezana lista se koristila za ฤeste operacije pretraลพivanja, ลกto je dovodilo do sporih performansi. Utvrdio sam problem i preporuฤio prelazak na strukturu temeljenu na hash-u, ลกto znaฤajno poboljลกava vrijeme pretraลพivanja.


8) Kako biste preokrenuli povezanu listu?

Oฤekivano od kandidata: Ispitivaฤ provjerava vaลกe logiฤko razmiลกljanje i razumijevanje iterativnih ili rekurzivnih pristupa.

Primjer odgovora: Povezanu listu bih preokrenuo iteracijom kroz nju i promjenom sljedeฤ‡eg pokazivaฤa svakog ฤvora da pokazuje na prethodni ฤvor. Ovaj se proces nastavlja sve dok se svi pokazivaฤi ne preokrenu i zaglavlje ne aลพurira.


9) Koje su prednosti i nedostaci koriลกtenja povezanih popisa?

Oฤekivano od kandidata: ลฝele uravnoteลพenu perspektivu i svijest o kompromisima.

Primjer odgovora: Prednosti ukljuฤuju dinamiฤku veliฤinu i uฤinkovito umetanje i brisanje. Nedostaci ukljuฤuju veฤ‡u upotrebu memorije i sporije vrijeme pristupa u usporedbi s nizovima. U mojoj posljednjoj ulozi, razumijevanje ovih kompromisa pomoglo je u odabiru prave strukture za razliฤite komponente.


10) Kako odluฤujete koju vrstu povezane liste koristiti u dizajnu sustava?

Oฤekivano od kandidata: Ovo situacijsko pitanje procjenjuje donoลกenje odluka u arhitektonskim kontekstima.

Primjer odgovora: Uzimam u obzir ฤimbenike kao ลกto su potrebe za prolaskom kroz popis, memorijska ograniฤenja i uฤestalost operacija. Na primjer, ako je potreban prolazak unatrag, dvostruko povezana lista je prikladnija, dok je jednostruko povezana lista dovoljna za jednostavnije, memorijski uฤinkovite implementacije.

Saลพmite ovu objavu uz: