Go语言链表:单向链表与双向链表

📅 2026/7/4 23:02:33 👁️ 阅读次数 📝 编程学习
Go语言链表:单向链表与双向链表

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语言可以通过结构体和指针实现链表操作。