


Cara memadamkan elemen senarai terpaut menggunakan bahasa Go
Dalam bahasa Go, memadamkan elemen senarai terpaut ialah operasi asas. Struktur senarai terpaut tidak boleh dimanipulasi secara langsung melalui pengindeksan seperti tatasusunan, jadi anda perlu mencari elemen yang perlu dipadamkan dalam senarai terpaut dan kemudian memadamkannya daripada senarai terpaut.
Artikel ini akan memperkenalkan operasi asas tentang cara memadam elemen senarai terpaut menggunakan bahasa Go.
- Tentukan struktur senarai terpaut
Dalam bahasa Go, senarai terpaut boleh dilaksanakan melalui satu siri struktur dan petunjuk. Kami biasanya menggunakan struktur nod untuk mewakili satu elemen dalam senarai terpaut.
taip struct ListNode {
Val int Next *ListNode
}
Struktur ini mengandungi dua pembolehubah ahli: Val dan Next. Val ialah nilai sebenar nod dan Seterusnya ialah penunjuk ke nod seterusnya.
- Memadamkan elemen dalam senarai terpaut
Memadamkan elemen dalam senarai terpaut boleh dibahagikan kepada tiga langkah. Pertama, kita perlu mencari elemen yang perlu dipadamkan. Kedua, kita perlu mengemas kini penunjuk ke elemen itu untuk menunjuk ke elemen seterusnya. Akhir sekali, kami memadamkan elemen yang perlu dipadamkan daripada senarai terpaut.
func deleteNode(head ListNode, val int) ListNode {
// 如果是删除头节点,直接返回下一个节点作为新的头节点 if head.Val == val { return head.Next } // 定义两个指针用于遍历链表 pre, cur := head, head.Next for cur != nil { if cur.Val == val { // 删除当前节点 pre.Next = cur.Next break } // 将指针移动到下一个节点 pre, cur = cur, cur.Next } return head
}
Dalam fungsi ini, kami menggunakan dua penunjuk pra dan cur untuk melintasi senarai terpaut. Jika nod yang perlu dipadam ditemui, penunjuk ke nod itu dikemas kini untuk menghala ke nod seterusnya.
- Contoh kod lengkap
Berikut ialah contoh kod lengkap, yang merangkumi struktur yang mentakrifkan senarai terpaut dan fungsi untuk memadamkan elemen senarai terpaut.
func deleteNode(head ListNode, val int) ListNode {
// 如果是删除头节点,直接返回下一个节点作为新的头节点 if head.Val == val { return head.Next } // 定义两个指针用于遍历链表 pre, cur := head, head.Next for cur != nil { if cur.Val == val { // 删除当前节点 pre.Next = cur.Next break } // 将指针移动到下一个节点 pre, cur = cur, cur.Next } return head
}
taip ListNode struct {
Val int Next *ListNode
}
func main() {
// 创建一个链表 l1 := &ListNode{1, nil} l2 := &ListNode{2, nil} l3 := &ListNode{3, nil} l4 := &ListNode{4, nil} l5 := &ListNode{5, nil} l1.Next = l2 l2.Next = l3 l3.Next = l4 l4.Next = l5 // 删除链表元素 head := deleteNode(l1, 3) // 打印链表 for head != nil { fmt.Println(head.Val) head = head.Next }
}
Dalam contoh di atas, kami telah mencipta senarai terpaut yang mengandungi 5 elemen. Kemudian, kami menggunakan fungsi deleteNode() untuk memadamkan elemen dengan nilai 3 daripada senarai terpaut. Akhir sekali, kami mengulangi keseluruhan senarai terpaut dan mencetak nilai setiap elemen.
- Ringkasan
Melalui penjelasan di atas, kita dapati bahawa senarai terpaut boleh dilaksanakan dalam bahasa Go melalui satu siri struktur dan petunjuk. Operasi asas memadam elemen senarai terpaut boleh dibahagikan kepada tiga langkah: carian, penuding kemas kini dan pemadaman. Saya harap artikel ini dapat membantu anda memahami dan menguasai operasi senarai terpaut dalam bahasa Go.
Atas ialah kandungan terperinci Cara memadamkan elemen senarai terpaut menggunakan bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.

Artikel ini menerangkan cara menggunakan alat PPROF untuk menganalisis prestasi GO, termasuk membolehkan profil, mengumpul data, dan mengenal pasti kesesakan biasa seperti CPU dan isu memori.

Artikel ini membincangkan ujian unit menulis di GO, meliputi amalan terbaik, teknik mengejek, dan alat untuk pengurusan ujian yang cekap.

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Artikel ini membincangkan menguruskan kebergantungan modul Go melalui Go.Mod, meliputi spesifikasi, kemas kini, dan resolusi konflik. Ia menekankan amalan terbaik seperti versi semantik dan kemas kini biasa.

Artikel ini membincangkan menggunakan ujian yang didorong oleh jadual di GO, satu kaedah yang menggunakan jadual kes ujian untuk menguji fungsi dengan pelbagai input dan hasil. Ia menyoroti faedah seperti kebolehbacaan yang lebih baik, penurunan duplikasi, skalabiliti, konsistensi, dan a

Laluan Pembelajaran Backend: Perjalanan Eksplorasi dari Front-End ke Back-End sebagai pemula back-end yang berubah dari pembangunan front-end, anda sudah mempunyai asas Nodejs, ...
