Masalalar
Go Algoritm masala

Oxiridan n-chi element

15 September, 2026
Go
package main

// type Node struct {
//     Val  int
//     Next *Node
// }

func (_ Solution) RemoveNthFromEnd(head *Node, n int) *Node {

    first := head
    second := head

    for i := 0; i < n; i++ {
        first = first.Next
    }

    if first == nil {
        return head.Next
    }

    for first.Next != nil {
        first = first.Next
        second = second.Next
    }

    second.Next = second.Next.Next

    return head
}

masalaga e'tibor bering, bizga Linked List berilyapti va n soni, biz berilgan Linked Listdan orqaga qarab yurib n inchi orinda turgan elementni olib tashlab LinkedListni qaytarishimiz kerak.


Bizning LinkedListimiz singly yani prev qilib oxiridan ortga qarab yura olmaymiz, unda nima qilamiz ?

Yechim bor !


bizga ikkta ozgaruvchi kerak boladi


first va second


firsni n ta yurdiramiz va u nta yurganidan keyin first va secondni barabariga oldinga siljitamiz va qachongi first LinkedList ni oxiriga yetganida second ayni biz olib tashlashimiz kerak bolgan songa borgan boladi


qanday qilib oddiy tasavur qiling 1,2,3,4,5 sonlari bor n = 2 yani 4 ni olib tashlashimiz kerak


firstni n taga yuritamiz bu xolda second haraktda bolmaydi va first 2 ga kelib toxtaydi va shundan song first va secondni bir tezlikda yuritamiz va first oxiriga yetganida second oxiriga yetishiga n ta qadam qolib ketadi biz oxiridan ortga qaytamymiz boshidan oxiriga nta qadam qolganida toxtaymiz



👍 0 ❤️ 0 🔥 0

Izohlar 0

Izoh qoldirish uchun kiring yoki ro'yxatdan o'ting.

Hali izoh yo'q. Birinchi bo'ling!