背景
在刷链表相关算法时,经常需要生成一个单链表,每次很麻烦,所以将其使用代码实现,在使用时只需要将内容传入即可生成一个单链表。
示例
例如,我们要生成单链表[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
}