Go语言链表:单向链表与双向链表
1. 单向链表实现
type ListNode struct { Val int Next *ListNode } type LinkedList struct { head *ListNode size int } func (l *LinkedList) Append(val int) { node := &ListNode{Val: val} if l.head == nil { l.head = node } else { cur := l.head for cur.Next != nil { cur = cur.Next } cur.Next = node } l.size++ } func (l *LinkedList) Remove(val int) bool { if l.head == nil { return false } if l.head.Val == val { l.head = l.head.Next l.size-- return true } cur := l.head for cur.Next != nil { if cur.Next.Val == val { cur.Next = cur.Next.Next l.size-- return true } cur = cur.Next } return false }2. 总结
链表是重要的线性数据结构,Go语言可以通过结构体和指针实现链表操作。