Topp 40 intervjuspørsmål og svar for lenkede lister (2026)

Toppliste for intervjuspørsmål og svar

Å forberede seg til et intervju om datastrukturer krever fokus på utfordringer. Intervjuspørsmål i lenket liste avslører dybde i problemløsning, pekerlogikk, hukommelsesbevissthet og hvordan kandidater resonnerer gjennom kanttilfeller.

Å mestre lenkede lister åpner opp roller på tvers av produktteam, plattformer og systemutvikling. Praktisk erfaring bygger sterk teknisk ekspertise, analytisk tenkning og rene kodevaner. Fra nyutdannede til seniorprofesjonelle støtter dette ferdighetssettet reell feilsøking, ytelsesanalyse, veiledning av juniorer og samarbeid med ledere om skalerbare løsninger ved hjelp av avanserte konsepter fra erfaring.
Les mer ...

👉 Gratis PDF-nedlasting: Intervjuspørsmål og svar fra lenket liste

Toppliste for intervjuspørsmål og svar

1) Forklar hva en lenket liste er, og hvordan den skiller seg fra en matrise.

A koblet liste er en lineær datastruktur der elementer, kalt noder, er koblet sammen ved hjelp av pekere eller referanser. Hver node inneholder data og en peker/referanse til den neste noden i listen. I motsetning til arrayer lagrer ikke koblede lister elementer i sammenhengende minne.

Viktige forskjeller mellom en lenket liste og en matrise:

Trekk Tilknyttet liste Array
Minnetildeling Dynamisk Statisk
Elementtilgangstid O (n) O (1)
Innsetting/sletting Effektiv (i enhver posisjon) Kostbart (må flyttes)
Minne overhead Ekstra plass til pekere Ingen ekstra pekeroverhead

Oppsummert avveier koblede lister raskere innsettinger og dynamisk størrelsesstørrelse for tregere tilfeldig tilgang og ekstra minneoverhead på grunn av pekere.


2) Hva er de forskjellige typene lenkede lister?

Det finnes flere typer lenkede lister, og intervjuere ber deg ofte om å skille mellom dem:

  • Enkeltlenket liste: Hver node peker bare til den neste noden.
  • Dobbeltkoblet liste: Noder har to pekereen til den neste og en til den forrige noden.
  • Sirkulær lenket liste: Den siste noden peker tilbake til den første noden og danner en løkke.
  • Dobbelt sirkulær lenket liste: Kombinerer både sirkulære og dobbeltlenkede lister.

Hver type har forskjellige brukstilfeller basert på traversering og minnebehov. For eksempel tillater dobbeltlenkede lister enkel bakovertraversering på bekostning av ekstra pekere.


3) Hvordan reverserer man en enkeltlenket liste? (Kodemetode)

RevÅ slette en lenket liste er et klassisk intervjuspørsmål. Målet er å endre retningen på pekerne slik at listen reverseres på plass uten å tildele nye noder.

Nøkkelidé:
Bruk tre pekere – prev, currog next — og iterer gjennom listen. Omdiriger i hvert trinn curr.next til prev, og flytt deretter alle pekere fremover.

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
}

Dette transformerer den sammenkoblede strukturen uten ekstra plass og går inn O (n) tid.


4) Forklar topekkerteknikken for å finne midten av en lenket liste.

Den mest effektive måten å finne den midterste noden i en lenket liste på er å bruke to pekere:

  • A langsom peker flytter én node om gangen.
  • A rask peker flytter to noder om gangen.

Når den raske pekeren når slutten, vil den langsomme pekeren være i midtpunktet. Denne teknikken fungerer i O (n) tid uten ekstra plass.


5) Hvordan ville du oppdage en syklus i en lenket liste?

Syklusdeteksjon er et annet klassisk problem. Standardløsningen bruker Floyds TorToise og Hare-algoritmen:

  • Flytt slow pointer ett skritt av gangen.
  • Flytt fast pointer to trinn om gangen.
  • Hvis listen har en syklus, vil de to pekerne møtes.

Hvis hurtigpekeren når null, listen har ingen syklus. Denne metoden kjører i O (n) tid og O (1) plass.


6) Hva er fordelene og ulempene med lenkede lister?

Lenkede lister tilbyr flere fordeler og avveininger:

Fordeler Ulemper
Dynamisk størrelse Ingen tilfeldig tilgang
Enkel innsetting/sletting Ekstra minne for pekere
Effektiv for datavekst Dårlig hurtigbufferytelse

Lenkede lister fungerer bra for dynamiske data, men kan være tregere enn arrayer for elementtilgang fordi hver tilgang krever gjennomgang fra hodet.


7) Hvordan slår man sammen to sorterte lenkede lister?

Å slå sammen to sorterte lister er et annet vanlig intervjuproblem. Tanken er å gå gjennom begge listene samtidig og bygge en ny sortert liste ved å velge den minste noden fra en av listene i hvert trinn.

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;
}

Denne metoden bevarer sortert rekkefølge og kjører i O(n + m) tid for lister med lengder n og m.


8) Forklar hvordan man sletter den N-te noden fra slutten av en lenket liste.

Den mest effektive teknikken bruker to pekere atskilt med n noder. Flytt den første pekeren n trinn fremover, og flytt deretter begge pekerne til den første når slutten. Den andre pekeren vil da være rett før målnoden.

Dette unngår å beregne listelengden separat og fullfører i O (n) tid. Den håndterer også kanttilfeller som å fjerne den første noden.


9) Hva er tidskompleksiteten det tar å få tilgang til det k-te elementet i en lenket liste?

Tilgang til kelementet i en lenket liste krever gjennomgang fra hodet til du når knoden. Fordi lenkede lister ikke gir direkte indeksering, koster dette O (n) tid i verste fall.

I motsetning til dette støtter arrayer direkte indeksering i O (1) tid.


10) Hvorfor ville du bruke en lenket liste i stedet for en array?

Lenkede lister er spesielt nyttige når:

  • Du forventer hyppige innsettinger og slettinger på vilkårlige posisjoner.
  • Du vet ikke størrelsen på dataene dine på forhånd.
  • Minnefragmentering gjør sammenhengende minneallokering vanskelig.

De støtter effektiv dynamisk minneallokering og innsetting/sletting i konstant tid ved listeslutt eller med en kjent nodereferanse – fordeler som arrayer ikke kan matche.


11) Hva er de praktiske bruksområdene for lenkede lister?

Lenkede lister brukes mye i systemer der dynamisk minnetildeling, hyppige innsettingereller datastrukturer med variabel størrelse er påkrevd. De er implementert i flere sentrale informatikkkonsepter og -applikasjoner, som for eksempel:

  • Dynamisk minnehåndtering (brukes i operativsystemer)
  • Angre/Gjør om-funksjoner i tekstredigerere
  • Kjeding av hash-tabeller å løse kollisjoner
  • Navigering i musikk- eller videospillelister
  • Representasjon av graftilstøtning
  • Polynomiske aritmetiske operasjoner

Disse eksemplene fremhever hvordan lenkede lister gir fleksibilitet og effektiv manipulering av sekvenser der endring av størrelse på arrayer ville være dyrt.


12) Forklar forskjellen mellom en enkeltlenket og en dobbeltlenket liste.

Trekk Enkeltlenket liste Dobbeltkoblet liste
pekere 1 (kun neste node) 2 (forrige og neste)
traversering Bare én retning Begge retninger
Minnebruk Less (bare én peker) Mer (ekstra peker)
sletting Vanskeligere (trenger forrige node) Lettere
Eksempel på bruk Stack-implementering Navigering i nettleserhistorikk

A dobbeltlenket liste er mer allsidig, men bruker mer minne. I motsetning til dette, enkeltlenkede lister er lette og effektive for ensrettet traversering.


13) Hvordan fjerner man duplikater fra en sortert lenket liste?

Når en koblet liste allerede er sortert, vil duplikater være ved siden av hverandre.

Gå gjennom listen og sammenlign dataene for hver node med den neste noden. Hvis de samsvarer, hopp over neste node.

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;
        }
    }
}

kompleksitet: O(n) tid og O(1) rom.

For usorterte lister kan et HashSet brukes til å track sett verdier.


14) Hva er forskjellen mellom en lineær og en sirkulær lenket liste?

Trekk Lineær lenket liste Sirkulær lenket liste
Siste node Poeng til NULL Peker til hovednoden
traversering Slutter når next == NULL Kontinuerlig gjennomgang
Bruk sak Stable, kø Round-robin-planlegging
kompleksitet enklere Mer kompleks håndtering

Sirkulære lister er spesielt nyttige i applikasjoner som CPU-planlegging, der prosesser utføres syklisk.


15) Hvordan finner du skjæringspunktet mellom to lenkede lister?

For å avgjøre om to enkeltkoblede lister skjærer hverandre:

  1. Finn lengdene på begge listene.
  2. Flytt pekeren til den lengste listen fremover med lengdeforskjellen.
  3. Gå gjennom begge listene samtidig til nodene er identiske.

Alternativt a HashSet kan brukes til å lagre besøkte noder for O(n)-plass.

Denne tilnærmingen er effektiv og blir ofte spurt om i intervjuer på seniornivå.


16) Hvordan sjekker man om to lenkede lister er identiske?

To lenkede lister er identiske hvis:

  • De har samme antall noder.
  • De tilsvarende nodeverdiene er identiske i rekkefølge.

algoritme:

  1. Gå gjennom begge listene samtidig.
  2. Sammenlign dataene for hver node.
  3. Hvis alle parene samsvarer og begge når NULL, er de identiske.

Tidskompleksitet: O (n)

Romkompleksitet: O (1)


17) Hva er en minnelekkasje i konteksten av lenkede lister?

A hukommelsestap oppstår når dynamisk tildelte noder ikke frigjøres etter bruk.

I lenkede lister, hvis delete or free() kalles ikke på noder som er fjernet fra listen, forblir minnet opptatt selv om det ikke lenger er tilgjengelig.

For eksempel å ikke frigi slettede noder i C/C++ fører til gradvis minneutmattelse, noe som forårsaker systemtretthet eller systemkrasj.

Riktig opprydding ved hjelp av en destruktor eller eksplisitt deallokering unngår dette problemet.


18) Forklar hvordan man implementerer en stakk ved hjelp av en lenket liste.

I en stable, elementene følger LIFO-rekkefølgen (sist inn, først ut).

En lenket liste er ideell fordi innsettinger og slettinger skjer effektivt i toppen.

Operatjoner:

  • Trykk: Sett inn ny node i hodet.
  • pop: Fjern noden fra hodet.
  • Kikk: Returner hodedata.

Fordeler:
Ikke behov for en array med fast størrelse; vokser dynamisk etter hvert som elementene flyttes.


19) Hvordan kan en lenket liste brukes til å implementere en kø?

I en køen, elementene følger FIFO-rekkefølgen (først inn, først ut).

Bruk en lenket liste der:

  • Sett inn i kø (Sett inn): Legg til en node ved halen.
  • Fjern fra køen: Slett noden fra hodet.

Dette tillater begge operasjoner i O (1) tid med to pekere – front og rear.

Det brukes ofte i prosessplanlegging og skriverkøsystemer.


20) Hva er forskjellene mellom en arrayliste og en lenket liste i Java?

Aspekt ArrayList LinkedList
Oppbevaring Dynamisk matrise Dobbeltlenket liste
Tilgangstid O (1) O (n)
Sett inn/slett Dyrt i midten Effektiv i endene
Minne overhead Less Mer (ekstra tips)
Bruk sak Hyppig tilgang Hyppig innsetting/sletting

Eksempel: Bruk ArrayList for oppslagstunge operasjoner, og LinkedList når innsettings-/slettingsoperasjoner dominerer.


21) Hvordan flater man ut en lenket liste på flere nivåer?

A flernivå lenket liste kan inneholde noder som har begge deler next og child pekere (hvert barn fører til en annen lenket liste). Målet er å flate ut alle noder til en lenket liste på ett nivå.

Nærme seg:

  1. Bruk stable or rekursiv funksjon.
  2. Start fra hodenoden.
  3. Hvis en node har en child, skyv dens next noden til stakken, og lag child as next.
  4. Fortsett til stabelen er tom.

Tidskompleksitet: O (n)

Romkompleksitet: O(n) for rekursjon/stabel.

Eksempel (konseptuelt):

1 - 2 - 3
    |
    4 - 5
Flattened → 1 → 2 → 4 → 5 → 3

Dette spørsmålet evaluerer din forståelse av rekursjon og pekermanipulering.


22) Hvordan kloner man en lenket liste med tilfeldige pekere?

Hver node i denne spesielle lenkede listen har to pekere:

  • next → peker til neste node.
  • random → peker til en hvilken som helst vilkårlig node.

Algoritme (3 trinn):

  1. Sett inn klonede noder mellom de opprinnelige nodene.
  2. Tildel tilfeldige pekere for kloner (clone.random = original.random.next).
  3. Skill de to listene fra hverandre.

Dette unngår ekstra plass til et hash-kart og kjører i O (n) tid med O (1) ekstra plass.

Bruk sak: Dypkopiering av komplekse datastrukturer (f.eks. grafer eller objektreferanser).


23) Hva er en liste over ting man ikke kan hoppe over, og hvordan er den relatert til lenkede lister?

A hopp over listen er en lagdelt lenket listestruktur som tillater raskt søk, innsetting og sletting (ligner på balanserte trær).

Operasjon Gjennomsnittstid Verste tilfelle
Søk O (log n) O (n)
Sett inn/slett O (log n) O (n)

Den inneholder flere nivåer, der øvre nivåer «hopper over» flere noder, noe som forbedrer søkeeffektiviteten.

Eksempel: Brukes i databaser som Redis og samtidige kartimplementeringer.


24) Hvordan kan man oppdage et palindrom i en lenket liste?

En lenket liste er et palindrom hvis den leser det samme bakover og fremover.

algoritme:

  1. Finn midten av listen.
  2. Reverse andre halvdel.
  3. Sammenlign de to halvdelene node for node.

Hvis alle tilsvarende noder samsvarer, er det et palindrom.

Eksempel:

1 → 2 → 3 → 2 → 1 → ✅ Palindrom

1 → 2 → 3 → 4 → ❌ Ikke et palindrom

Tidskompleksitet: O (n)

Romkompleksitet: O (1)


25) Hvordan fjerner man løkken i en lenket liste?

Hvis det finnes en løkke (ved bruk av Floyds syklusdeteksjon), fjern den ved å følge disse trinnene:

  1. Oppdag møtepunktet for langsomme og raske pekere.
  2. Flytt én peker til hodet.
  3. Flytt begge pekerne ett trinn om gangen til de møtes ved løkkestartnode.
  4. Angi den forrige nodens next til null.

Denne tilnærmingen sikrer at det ikke brukes ekstra minne under løsning av sykluser.


26) Hva er de forskjellige måtene å representere lenkede lister i minnet på?

Lenkede lister kan representeres i tre hovedveier:

Representasjonstype Tekniske beskrivelser Eksempel på bruk
Dynamiske noder Hver node dynamisk allokert og koblet C, C++
Statisk arrayrepresentasjon Bruker arrayindekser i stedet for pekere Innebygde systemer
Koblede objekter Objektorientert representasjon med klasser Java, Python

Hver tilnærming passer til forskjellige miljøer – for eksempel brukes arraybaserte lister når pekermanipulering er begrenset.


27) Hvordan kan du finne lengden på en lenket liste (iterativ og rekursiv)?

Iterativ tilnærming:

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

Rekursiv tilnærming:

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

Begge tilnærmingene har O (n) tidskompleksitet; rekursjon legger til O (n) plassoverhead på grunn av kallstakken.


28) Forklar konseptet med sirkulære dobbeltlenkede lister med et eksempel.

I en sirkulær dobbeltlenket liste, hver node har to lenker – én til den neste og én til den forrige – og den siste nodens next peker mot hodet, mens hodets prev peker til den siste noden.

Eksempler på bruk:

  • Operativsystemer i sanntid (round-robin-planlegging)
  • Musikk spilleliste toalettping
  • Navigering mellom faner eller lysbilder

Fordeler:

  • Toveis gjennomgang.
  • Ingen nullreferanser.
  • Effektive innsettinger og slettinger.

29) Hvordan sletter man alternative noder i en lenket liste?

algoritme:

  1. Start fra hodet.
  2. Slett annenhver node ved å justere pekere.
  3. Fortsett til listen er ferdig.

Eksempel:

Input: 1 → 2 → 3 → 4 → 5  
Output: 1 → 3 → 5

kompleksitet:

  • Tid: O(n)
  • Plass: O(1)

Dette kontrollerer forståelsen av pekertraversering og slettingssikkerhet.


30) Hvordan kan du finne den n-te noden fra begynnelsen og slutten av en lenket liste?

Fra begynnelsen: Gå gjennom listen til antall = n.

Fra slutten: Bruk to pekere.

  1. Flytt den første pekeren n skritt fremover.
  2. Flytt begge samtidig til den første når null.
  3. Den andre pekeren peker nå på den n-te noden fra slutten.

Tidskompleksitet: O (n)

Romkompleksitet: O (1)

Denne tilnærmingen unngår å beregne lengde separat, noe som forbedrer effektiviteten.


31) Hvordan endrer man rekkefølgen på en lenket liste?

Problemet: Gitt en liste L0 → L1 → … → Ln-1 → Ln, omorganiser det som L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …

Fremgangsmåte:

  1. Finn midten av listen.
  2. Reverse andre halvdel.
  3. Slå sammen de to halvdelene vekselvis.

Eksempel:

Input: 1 → 2 → 3 → 4 → 5  
Output: 1 → 5 → 2 → 4 → 3

kompleksitet: O(n) tid, O(1) rom.

Dette tester flere lenkede listeoperasjoner i ett spørsmål.


32) Hvordan partisjonerer du en lenket liste rundt en gitt verdi x?

Målet:
Omorganiser noder slik at alle noder mindre enn x kommer før noder større enn eller lik x.

Nærme seg:

  • Vedhold to dummylister: before og after.
  • Gå gjennom den opprinnelige listen og legg til noder i de respektive listene.
  • Kombiner dem til slutt.

Eksempel:

Input: 3 → 5 → 8 → 5 → 10 → 2 → 1, x = 5  
Output: 3 → 2 → 1 → 5 → 8 → 5 → 10

Dette blir ofte spurt om for å evaluere evnen til å omorganisere data.


33) Hvordan sorterer man en lenket liste?

Siden lenkede lister ikke støtter tilfeldig tilgang, Slå sammen Sorter er det beste valget.

Fremgangsmåte:

  1. Del listen i to halvdeler ved hjelp av langsomme/raske pekere.
  2. Sorter hver halvdel rekursivt.
  3. Slå sammen sorterte halvdeler.

Fordeler:

  • O(n log n) tid.
  • O(1) ekstra plass (for iterativ versjon).

I motsetning til arrayer er QuickSort ineffektiv for koblede lister på grunn av kompleksitet i omorganisering av pekere.


34) Hva er forskjellen mellom enkelt-, dobbelt- og sirkulære lenkelister?

Trekk Enkelt Dobbelt Rundskriv
lenker En (neste) To (forrige og neste) Siste node kobles til hodet
traversering Bare forover Fremover og bakover Uendelig gjennomkjøring mulig
Innsetting/sletting Moderat Enklere i begge ender Spesiell saksbehandling
Bruk sak Stable, kø Angre operasjoner Round-robin-planlegging

Dette sammenligningsspørsmålet ser ofte ut til å sjekke konseptuell klarhet.


35) Hvordan finner du skjæringspunktet mellom to sirkulære lenkede lister?

Dette er en forlengelse av kryssproblemet.

algoritme:

  1. Oppdag om hver liste har en løkke.
  2. Hvis begge er asykliske → bruk standard skjæringsalgoritme.
  3. Hvis begge er sykliske → finn løkkestarten for hver og sjekk om de er like eller sammenkoblede.

Dette problemet kombineres syklusdeteksjon og skjæringspunktslogikk, testing av flerkonseptresonnement.


36) Forklar hvordan man setter inn en node i en sortert lenket liste.

Fremgangsmåte:

  1. Opprett en ny node med den gitte verdien.
  2. Gå gjennom til du finner riktig posisjon.
  3. Juster next pekere deretter.

Eksempel:

Input: 1 → 3 → 5 → 7, Insert 4  
Output: 1 → 3 → 4 → 5 → 7

Dette er et grunnleggende manipulasjonsproblem for å teste forståelsen av pekerjustering.


37) Hvordan deler man en lenket liste i to halvdeler?

algoritme:

  • Bruk metoden med langsom og rask peker.
  • Når fast når slutten, slow vil være på midtpunktet.
  • Splitt ved den noden.

Eksempel:

Input: 1 → 2 → 3 → 4 → 5  
Output: 1 → 2 → 3  and  4 → 5

Denne operasjonen er ofte det første trinnet i sorteringen av lenkede lister.


38) Hvordan finner man siste forekomst av en verdi i en lenket liste?

Gå gjennom listen mens du holderping track for den siste noden der målverdien finnes.

Pseudokode:

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

kompleksitet: O (n)

Dette kontrollerer forståelsen av lineær traversering og tilstandskontroll.


39) Hvordan kan man fjerne alle forekomster av en gitt nøkkel fra en lenket liste?

algoritme:

  1. Håndter hodenoder først hvis de inneholder målnøkkelen.
  2. Deretter går du gjennom og sletter påfølgende noder som inneholder nøkkelen.

Eksempel:

Input: 1 → 2 → 6 → 3 → 4 → 5 → 6, Key = 6  
Output: 1 → 2 → 3 → 4 → 5

kompleksitet: O (n)

Dette demonstrerer kunnskap om kanttilfeller (spesielt hodeslettinger).


40) Hva er de viktigste forskjellene mellom stakkdata og lenkede lister?

Trekk Stable Tilknyttet liste
Tilgangstype LIFO (sist inn, først ut) Sekvensiell
Gjennomføring Matrise eller lenket liste Nodebasert
Trykk/Popp Sett inn/slett/gå gjennom
Fleksibilitet Begrenset tilgang Fleksibel tilgang
Bruk sak Funksjonskallhåndtering Dynamisk datahåndtering

En stabel kan implementeres ved hjelp av en lenket liste, men de er forskjellige i konsept – stack har begrenset tilgang, mens lenket liste er en generell struktur.


🔍 Toppliste over lenkede intervjuspørsmål med virkelige scenarioer og strategiske svar

1) Hva er en lenket liste, og hvordan skiller den seg fra en array?

Forventet fra kandidaten: Intervjueren ønsker å vurdere din forståelse av grunnleggende datastrukturer og din evne til å sammenligne avveininger.

Eksempel på svar: En lenket liste er en lineær datastruktur der elementer, kalt noder, er koblet sammen ved hjelp av pekere. Hver node inneholder data og en referanse til neste node. I motsetning til arrayer krever ikke lenkede lister sammenhengende minne og tillater dynamisk endring av størrelse, men de har lavere tilgangstider fordi elementer ikke er indeksert.


2) Når ville du valgt en lenket liste fremfor en matrise i en applikasjon i den virkelige verden?

Forventet fra kandidaten: De evaluerer din praktiske vurderingsevne når du velger passende datastrukturer.

Eksempel på svar: Jeg ville valgt en lenket liste når hyppige innsettinger og slettinger er nødvendige, spesielt midt i datasettet. I min forrige rolle jobbet jeg med en oppgaveplanleggingsfunksjon der oppgaver ofte ble lagt til og fjernet, og en lenket liste ga bedre ytelse enn en matrise.


3) Kan du forklare forskjellen mellom enkeltlenkede lister og dobbeltlenkede lister?

Forventet fra kandidaten: Intervjueren ønsker å bekrefte din konseptuelle klarhet og evne til å forklare tekniske forskjeller tydelig.

Eksempel på svar: En enkeltlenket liste har noder som bare peker til neste node, mens en dobbeltlenket liste har noder som peker til både neste og forrige node. Dobbeltlenkede lister tillater enklere bakovergjennomgang, men krever mer minne på grunn av den ekstra pekeren.


4) Hvordan ville du oppdage en syklus i en lenket liste?

Forventet fra kandidaten: Dette tester dine problemløsningsferdigheter og kjennskap til vanlige algoritmiske mønstre.

Eksempel på svar: En vanlig tilnærming er å bruke to pekere som beveger seg med ulik hastighet, ofte kalt den langsomme og raske pekerteknikken. Hvis det er en syklus, vil de to pekerne til slutt møtes. I en tidligere posisjon brukte jeg denne tilnærmingen for å forhindre uendelige løkker i en databehandlingspipeline.


5) Hva er noen vanlige operasjoner som utføres på lenkede lister?

Forventet fra kandidaten: Intervjueren vil se om du forstår standardoperasjoner og deres implikasjoner.

Eksempel på svar: Vanlige operasjoner inkluderer innsetting, sletting, gjennomgang, søking og reversering av listen. Hver operasjon har ulik tidskompleksitet avhengig av hvor den utføres, noe som er viktig når man designer effektive systemer.


6) Hvordan håndterer du å sette inn en node midt i en lenket liste?

Forventet fra kandidaten: De sjekker din forståelse av pekermanipulering og oppmerksomhet på detaljer.

Eksempel på svar: For å sette inn en node i midten, beveger jeg meg først over listen for å finne målposisjonen, deretter justerer jeg pekerne slik at den nye noden peker på den neste noden og den forrige noden peker på den nye noden. Nøye pekeroppdateringer er avgjørende for å unngå at listen blir ødelagt.


7) Beskriv en situasjon der en lenket liste forårsaket ytelsesproblemer, og hvordan du håndterte det.

Forventet fra kandidaten: Dette atferdsspørsmålet evaluerer din evne til å reflektere og optimalisere.

Eksempel på svar: I min forrige jobb ble en lenket liste brukt til hyppige søkeoperasjoner, noe som førte til treg ytelse. Jeg identifiserte problemet og anbefalte å bytte til en hash-basert struktur, noe som forbedret oppslagstiden betydelig.


8) Hvordan ville du reversere en lenket liste?

Forventet fra kandidaten: Intervjueren tester din logiske tenkning og forståelse av iterative eller rekursive tilnærminger.

Eksempel på svar: Jeg ville reversert en lenket liste ved å iterere gjennom den og endre hver nodes neste peker slik at den peker til den forrige noden. Denne prosessen fortsetter til alle pekerne er reversert og head-listen er oppdatert.


9) Hva er fordelene og ulempene med å bruke lenkede lister?

Forventet fra kandidaten: De ønsker et balansert perspektiv og bevissthet om avveininger.

Eksempel på svar: Fordelene inkluderer dynamisk størrelse og effektive innsettinger og slettinger. Ulempene inkluderer høyere minnebruk og langsommere tilgangstider sammenlignet med arrayer. I min forrige rolle hjalp forståelsen av disse avveiningene med å velge riktig struktur for ulike komponenter.


10) Hvordan bestemmer man hvilken type lenket liste man skal bruke i et systemdesign?

Forventet fra kandidaten: Dette situasjonsbestemte spørsmålet vurderer beslutningstaking i arkitektoniske kontekster.

Eksempel på svar: Jeg vurderer faktorer som behov for gjennomgang, minnebegrensninger og operasjonsfrekvens. Hvis for eksempel bakovergående gjennomgang er nødvendig, er en dobbeltlenket liste mer passende, mens en enkeltlenket liste er tilstrekkelig for enklere, minneeffektive implementeringer.

Oppsummer dette innlegget med: