golang单向链表讲解

发布时间:2024-12-23 03:04:07

Go语言是一种非常流行的编程语言,具有高效的并发性和内存管理。在Go语言中,单向链表是一种常用的数据结构,用来存储和操作一系列元素。本文将介绍如何使用Go语言来实现单向链表。

定义单向链表结构

首先,我们需要定义一个表示链表节点的结构体。该结构体包含两个字段:值和指向下一个节点的指针。

``` type ListNode struct { Val int // 节点的值 Next *ListNode // 指向下一个节点的指针 } ```

创建链表

接下来,我们可以编写一个函数来创建一个新的链表。这个函数接收一个整数切片作为输入,并返回一个指向链表头部的指针。

``` func CreateLinkedList(nums []int) *ListNode { dummy := &ListNode{} // 创建一个虚拟头节点 cur := dummy // 当前节点初始化为虚拟头节点 for _, num := range nums { cur.Next = &ListNode{Val: num} // 创建新节点并赋值给当前节点的Next指针 cur = cur.Next // 移动当前节点到下一个节点 } return dummy.Next } ```

遍历链表

现在我们已经创建了一个链表,下一步是遍历它并访问每个节点的值。为此,我们可以编写一个函数。

``` func TraverseLinkedList(head *ListNode) { cur := head for cur != nil { fmt.Println(cur.Val) // 访问当前节点的值 cur = cur.Next // 移动到下一个节点 } } ```

相关推荐