Sobes.tech
Junior — Middle

Mekkora az időbeli komplexitása annak az műveletnek, amikor egy elemet hozzáadunk a láncolt lista végéhez?

sobes.tech MI

Válasz az MI-től

A láncolt lista végére történő elem hozzáadásának időkomplexitása attól függ, hogy van-e mutató a lista utolsó elemére.

  • Ha van mutató a végére (tail), akkor a hozzáadás O(1) idő alatt történik, mivel azonnal hozzáadhatunk egy új elemet a tail után.
  • Ha nincs mutató a végére, akkor végig kell járni az egész listát, hogy megtaláljuk az utolsó elemet, és ekkor a komplexitás O(n) lesz, ahol n a lista elemeinek száma.

Példa mutatóval a végén:

class LinkedList {
    Node head;
    Node tail;

    void addLast(int value) {
        Node newNode = new Node(value);
        if (head == null) {
            head = newNode;
            tail = newNode;
        } else {
            tail.next = newNode;
            tail = newNode;
        }
    }
}