go语言如何实现单链表

编辑: admin 分类: 电脑知识 发布时间: 2023-06-11 来源:互联网

go语言实现单链表的方法是:1、创建一个Go示例文件;2、定义链表节点结构体;3、遍历节点,在链表头和链表尾添加新节点;4、在指定链表位置插入或删除新节点;5、获取链表指定位置的节点值,实现节点的增删改查等操作。

go语言如何实现单链表

本教程操作系统:Windows10系统、Go1.20.1版本、Dell G3电脑。

Go 语言中可以通过结构体和指针来实现单链表。

具体的方法如下:

1、定义链表节点结构体

type ListNode struct {
    Val int
    Next *ListNode
}
登录后复制

2、实现节点的增、删、改、查等操作

// 遍历节点
func (head *ListNode) Traverse() {
for head != nil {
fmt.Println(head.Val)
head = head.Next
}
}
// 在链表头添加新节点
func (head *ListNode) AddAtHead(val int) *ListNode {
node := &ListNode{
Val:  val,
Next: head,
}
return node
}
// 在链表尾添加新节点
func (head *ListNode) AddAtTail(val int) *ListNode {
if head == nil {
return &ListNode{
Val:  val,
Next: nil,
}
}
cur := head
for cur.Next != nil {
cur = cur.Next
}
cur.Next = &ListNode{
Val:  val,
Next: nil,
}
return head
}
// 在链表指定位置插入新节点
func (head *ListNode) AddAtIndex(index, val int) *ListNode {
if index <= 0 {
return head.AddAtHead(val)
}
cur := head
for i := 0; i < index-1 && cur != nil; i++ {
cur = cur.Next
}
if cur == nil {
return head
}
node := &ListNode{
Val:  val,
Next: cur.Next,
}
cur.Next = node
return head
}
// 删除链表指定位置的节点
func (head *ListNode) DeleteAtIndex(index int) *ListNode {
if index < 0 {
return head
}
if index == 0 {
return head.Next
}
cur := head
for i := 0; i < index-1 && cur != nil; i++ {
cur = cur.Next
}
if cur == nil || cur.Next == nil {
return head
}
cur.Next = cur.Next.Next
return head
}
// 获取链表指定位置的节点值
func (head *ListNode)
登录后复制【文章转自韩国多ip站群服务器 http://www.558idc.com/krzq.html处的文章,转载请说明出处】