En İyi 150 RöportajKolay

Listeyi Rastgele İşaretçiyle Kopyala

'Listeyi Rastgele İşaretçiyle Kopyala' sorunu için ayrıntılı kılavuz ve Python uygulaması.

Sorun Bildirimi

Kolay

Her düğümün, listedeki herhangi bir düğüme işaret edebilecek ek bir rastgele işaretçi içerecek şekilde veya boş olarak, n uzunluğunda bağlantılı bir liste verilir.

Listenin derin bir kopyasını oluşturun. Derin kopya, her yeni düğümün değerinin karşılık gelen orijinal düğümün değerine ayarlandığı tam olarak n yeni düğümden oluşmalıdır. Yeni düğümlerin hem sonraki hem de rastgele işaretçisi, orijinal listedeki ve kopyalanan listedeki işaretçiler aynı liste durumunu temsil edecek şekilde kopyalanan listedeki yeni düğümlere işaret etmelidir.

Liste, [val, random_index] çiftlerinin bir listesi olarak temsil edilir; burada random_index, rastgele işaretçinin işaret ettiği düğümün indeksidir veya boş değeri gösteriyorsa -1'dir. Derin kopyayı aynı biçimde döndüren copyRandomList(head: list) -> list işlevini uygulayın.

Kısıtlamalar
  • 0 <= n <= 1000
  • -10000 <= Node.val <= 10000
  • Node.random is null or points to some node in the linked list

Örnekler

Example 1
Input
[[7,-1],[13,0],[11,4],[10,2],[1,0]]
Output
[[7,-1],[13,0],[11,4],[10,2],[1,0]]
Explanation

The deep copy has the same structure. Node 0 (val=7) has random=null, Node 1 (val=13) has random pointing to Node 0, etc.

Example 2
Input
[[1,1],[2,1]]
Output
[[1,1],[2,1]]
Explanation

Node 0 (val=1) has random pointing to Node 1. Node 1 (val=2) has random pointing to Node 1 (itself).

Example 3
Input
[[3,-1],[3,0],[3,-1]]
Output
[[3,-1],[3,0],[3,-1]]
Explanation

Three nodes all with value 3. Node 1's random points to Node 0.

Need a Hint?
Kümeler veya yığınlar gibi Bağlantılı Listeye özgü veri yapılarını kullanmayı düşünün.
Edge Cases to Watch
  • Boş giriş yapıları
  • Tek eleman girişleri
  • Büyük sayısal sınırlar

Çözmeye Hazır mısınız?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Editörde Aç
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.