LeetCode Temel Algoritması Soru No. 79: Selefi bilinmiyor, tek bağlantılı listenin düğümü nasıl silinir?

Algoritmalar hakkında çok karmaşık makaleler nasıl yazılır. Son olarak, yazmaya en basit seviyeden başlamanın daha iyi olacağını düşünüyorum. Başlangıçtan itibaren, yapay zeka, makine öğrenimi algoritmaları ve çok sayıda matematik ve optimizasyon bilgisi gibi bazı ağır ağırlıklara sahip olacağım. Sanırım çok bunaltıcı olacak. Bunu yapamayabilirim, doğru.

Her soruya iki dilde, bir statik dil ve bir dinamik dilde çözüm getirmeyi planlıyorum.

Uygulama dilleri olarak C dili, Python ve Java'yı seçiyorum.Kısıtlı alan nedeniyle, diğer dilleri uygulamakla ilgilenen arkadaşlar, lütfen kendiniz deneyin.

LeetCode 237. Bağlantılı Listedeki Düğümü Silme (Bağlantılı Listedeki Düğümü Silme)

Sorun Açıklaması:

Lütfen bağlantılı listedeki belirli (uç olmayan) bir düğümü silmek için bir işlev yazın ve size yalnızca silinmesi gereken düğüm verilecektir.

Bağlantılı bir liste var - head =, şu şekilde ifade edilebilir:

Not:

  • Bağlantılı liste en az iki düğüm içerir.
  • Bağlantılı listedeki tüm düğümlerin değerleri benzersizdir.
  • Verilen düğüm, son düğüm değildir ve bağlantılı listede geçerli bir düğüm olmalıdır.
  • İşlevinizden herhangi bir sonuç döndürmeyin.
  • Misal:

    C dili uygulaması:

    Tek bağlantılı bir listenin bir düğümünü silmek, tekil bağlantılı bir listenin temel işlemidir.

    İlke, silinen düğümün önceki düğümünün bir sonraki göstericisinin doğrudan düğümün ardıl düğümüne işaret etmesini sağlamaktır.

    Bu prensibe göre düğümün öncülünü bilmemiz gerekir.

    Ancak Leetcode tarafından sağlanan fonksiyon prototipine baktığımızda, sadece düğüm vardır, bu da düğümün öncülünü bilemeyeceğimiz anlamına gelir.

    Düşüncemizi değiştirelim, adresi değiştirmeden düğüm ve düğümün halefi arasında veri içeriğini değiştirebilirsek, o zaman sözde selef vazgeçilebilir bir şey olacaktır.

    Diğer bir deyişle, düğümün öncülü hala düğüme işaret ediyor, ancak şu anda düğümün içerik Düğümün halef düğümü ile aynı, İçerikten bahsettiğimi unutmayın, sadece veriler . Şu anda, düğümün halefi artık bir düğüm haline gelir, sadece silin.

    kod aşağıdaki gibi gösterilir:

    Hatırlatma: C dilinin belleği kendi başına yönetmesi gerekir, bu nedenle bellek sızıntısını önlemek için silinen düğümün serbest bırakılması gerekir.

    Python dilinin uygulanması:

    Python uygulaması temelde C dilininkiyle aynıdır.

    kod aşağıdaki gibi gösterilir:

    Java dilinin uygulanması:

    Java uygulaması temelde C dili uygulamasıyla aynıdır.

    kod aşağıdaki gibi gösterilir:

    Endüstri | GitHub yıllık rapor envanteri: geliştiriciler 31 milyona yükseldi, açık kaynaklı projeler 96 milyona ulaştı
    önceki
    Honor, başka bir üç kameralı amiral gemisi mi? V20, 3C sertifikasını geçti ve yapılandırmada parlak noktalar var
    Sonraki
    Filmin büyük adamları geri döndü, Di Dou Xi'yi izliyor ve 2019'un en iyi TVB dizileri burada!
    Samsung eğilecek mi? Hayır, katlanabilir ekranlı bir telefon geliyor
    Lin Feng yuva TVB'ye geri döndüğünü duyurdu, bu 2019'daki en şaşırtıcı olan "Uzun bir süre görüşürüz"!
    Honor V20, 3C sertifikası olarak görünüyor veya Kirin 980 / arka üç kamera ile donatılacak
    Virgil Abloh x NIKE tamamen gözden mi düştü? ! Sneaker Con London Sneaker Show Ödeyebileceğiniz herhangi bir şey var mı?
    FCA yeni araba planlaması, yeni nesil Wrangler 17 Kasım'da görücüye çıkıyor
    Kuru Mallar Squad 2.0'daki ilk U-NET modelleri, bunların zekası nedir?
    Tam ekran çağında göz koruma sihirbazı, Nubia X çift ekranlı cep telefonu önerilir
    NMD ve EQT'nin ardından adidas'ın ev temizliği ayakkabıları önümüzdeki yıl sergilenecek! Yeni ayakkabı Prophere'in önceden başlaması bekleniyor mu? !
    2017 Tokyo Otomobil Fuarı: Toyota Fine-Comfort Ride
    Pao Ding Jie Hisse Senedi | Riskten kaçınma ve% 5 yıllık temettü mü? Bu 3 paylaşım ihtiyaçlarınızı karşılayabilir
    TVB Lichao Huadan aniden evlendiğini duyurdu, ona tatlılığı veren bu zengin iş adamıydı
    To Top