共計(jì) 867 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
在 Go 語(yǔ)言中,我們可以使用指針來(lái)刪除鏈表中的元素。首先,我們需要定義一個(gè)鏈表節(jié)點(diǎn)的結(jié)構(gòu)體,其中包含一個(gè)值和一個(gè)指向下一個(gè)節(jié)點(diǎn)的指針。然后,我們可以使用指針遍歷鏈表,找到需要?jiǎng)h除的節(jié)點(diǎn),并將其前一個(gè)節(jié)點(diǎn)的指針指向需要?jiǎng)h除節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn),從而刪除該節(jié)點(diǎn)。
下面是一個(gè)示例代碼,演示了如何刪除鏈表中的元素:
package main
import "fmt"
// 鏈表節(jié)點(diǎn)結(jié)構(gòu)體
type ListNode struct {Val int
Next *ListNode
}
// 遍歷鏈表打印所有節(jié)點(diǎn)的值
func printList(head *ListNode) {
cur := head
for cur != nil {fmt.Printf("%d ", cur.Val)
cur = cur.Next
}
fmt.Println()}
// 刪除鏈表中的指定元素
func deleteNode(head *ListNode, val int) *ListNode {// 頭節(jié)點(diǎn)特殊處理
if head.Val == val {return head.Next
}
cur := head
for cur.Next != nil {// 找到需要?jiǎng)h除的節(jié)點(diǎn)
if cur.Next.Val == val {
cur.Next = cur.Next.Next
return head
}
cur = cur.Next
}
return head
}
func main() {// 創(chuàng)建鏈表 1 -> 2 -> 3 -> 4 -> 5
head := &ListNode{Val: 1}
node2 := &ListNode{Val: 2}
node3 := &ListNode{Val: 3}
node4 := &ListNode{Val: 4}
node5 := &ListNode{Val: 5}
head.Next = node2
node2.Next = node3
node3.Next = node4
node4.Next = node5
// 刪除鏈表中的元素 3
head = deleteNode(head, 3)
// 打印刪除元素后的鏈表
printList(head)
}
運(yùn)行上述代碼,輸出結(jié)果為:1 2 4 5,表示成功刪除了鏈表中的元素 3。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完