Sobes.tech
Junior — Middle

Ինչպե՞ս որոշել վերջին տարրից առաջ մի պարզ կապակցված ցանկում։

sobes.tech AI

Պատասխան AI-ից

Միակ կապակցված ցանկում, նախքան վերջին տարրին գտնելու համար, պետք է անցնել ցանկով և կանգ առնել այն հանգույցում, որի հաջորդ հանգույցը վերջինն է (այսինքն, հաջորդ հանգույցի Next դաշտը null է):

Օրինակ C#-ում:

class Node {
    public int Value;
    public Node Next;
}

Node FindPenultimate(Node head) {
    if (head == null || head.Next == null) return null; // չկա նախավերջին
    Node current = head;
    while (current.Next.Next != null) {
        current = current.Next;
    }
    return current;
}

Այստեղ ցիկլը շարունակվում է, քանի դեռ հաջորդ հանգույցը ունի ևս մեկ հաջորդ հանգույց, այսինքն՝ մինչև նախավերջին տարրին հասնելը։