首页 >常见问题 >go语言如何实现单链表

go语言如何实现单链表

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌原创
2023-06-09 11:50:191533浏览

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)

以上是go语言如何实现单链表的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn