共计 867 个字符,预计需要花费 3 分钟才能阅读完成。
在 Go 语言中,我们可以使用指针来删除链表中的元素。首先,我们需要定义一个链表节点的结构体,其中包含一个值和一个指向下一个节点的指针。然后,我们可以使用指针遍历链表,找到需要删除的节点,并将其前一个节点的指针指向需要删除节点的下一个节点,从而删除该节点。
下面是一个示例代码,演示了如何删除链表中的元素:
package main
import "fmt"
// 链表节点结构体
type ListNode struct {Val int
Next *ListNode
}
// 遍历链表打印所有节点的值
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 {// 头节点特殊处理
if head.Val == val {return head.Next
}
cur := head
for cur.Next != nil {// 找到需要删除的节点
if cur.Next.Val == val {
cur.Next = cur.Next.Next
return head
}
cur = cur.Next
}
return head
}
func main() {// 创建链表 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)
}
运行上述代码,输出结果为:1 2 4 5,表示成功删除了链表中的元素 3。
丸趣 TV 网 – 提供最优质的资源集合!
正文完