go实现输入slice生成单链表

925 阅读1分钟

背景

  在刷链表相关算法时,经常需要生成一个单链表,每次很麻烦,所以将其使用代码实现,在使用时只需要将内容传入即可生成一个单链表。

示例

  例如,我们要生成单链表[1, 3, 4, 6],我们只需要输入这个数组即可,返回的就是单链表的地址。

代码实现

  实现代码如下:

// newListNode 生成一个链表
func newListNode(arr []int) *ListNode {
    var head ListNode
    var pre ListNode
    for _, num := range arr {
        node := ListNode{Val: num, Next: nil}	
        if head.Next == nil {
            head.Next = &node
        }
        if pre.Next == nil {
            pre.Next = &node
        }else {
            pre.Next.Next = &node
            pre = *pre.Next
        }
    }	
    return head.Next
}