当前位置:网站首页>常见链表题及其 Go 实现
常见链表题及其 Go 实现
2022-07-30 18:28:00 【华为云】
链表中删除重复项
从链表中移除一个重复的值,链表是有序的。在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
Go 语言实现如下:
func(list *List) RemoveDuplicate() { curr := list.head for curr != nil { if curr.next != nil && curr.value == curr.next.value { curr.next = curr.next.next } else { curr = curr.next } }}算法分析:
该算法只用了一层循环,for 循环用于遍历列表。 每当有一个节点的值等于下一个节点的值时,该当前节点下一个将指向下一个节点的下一个。 这将从列表中删除下一个节点,算法复杂度为 O(n)
链表反转
将链表的内容以相反的顺序复制到另一个链表中。 如果原始链表包含顺序为 1,2,3,4 的元素,则新链表应包含顺序为 4,3,2,1 的元素。
func(list *List) CopyListReversed() *List { var tempNode, tempNode2 * Node curr := list.head for curr != nil { tempNode2 = &Node{curr.value, tempNode} curr = curr.next tempNode = tempNode2 } ll2 := new(List) ll2.head = tempNode return ll2}遍历列表并将节点的值添加到新列表中。 由于列表是正向遍历的,并且每个节点的值都被添加到另一个列表中,所以形成的列表与给定列表相反.
链表对比
比较给定头指针的两个链表的值。
func (list *List) CompareList(ll *List) bool { return list.compareListUtil(list.head, ll.head)}func(list *List) compareListUtil(head1 *Node, head2 *Node) bool { if head1 == nil && head2 == nil { return true } else if (head1 == nil) || (head2 == nil) || (head1.value != head2.value) { return false } else { return list.compareListUtil(head1.next, head2.next) }}列表是递归比较的。 此外,如果我们到达列表的末尾并且两个列表都是空的。 然后两个列表相等,因此返回 true
列表是递归比较的。 如果列表中的任何一个为空或对应节点的值不相等,则此函数将返回 false。
递归调用当前节点的下一个节点的比较列表函数。
边栏推荐
- 这玩意儿都能优化?果然是细节都在魔鬼里。
- Graphic LeetCode -- 11. Containers of most water (difficulty: medium)
- CCNA-ACL(访问控制列表)标准ACL 扩展ACL 命名ACL
- 中集世联达工业级成熟航运港口人工智能AI产品规模化应用,打造新一代高效能智慧港口和创新数字港口,全球港航人工智能能领军者中集飞瞳
- scrapy基本使用
- "Ruffian Heng Embedded Bimonthly" Issue 59
- JVM 上数据处理语言的竞争:Kotlin, Scala 和 SPL
- mysql的多实例
- arcpy获取要素类(属性表)包含的数目
- 积性函数
猜你喜欢
随机推荐
积性函数
Linux-安装MySQL(详细教程)
CMake库搜索函数居然不搜索LD_LIBRARY_PATH
千亿级、大规模:腾讯超大 Apache Pulsar 集群性能调优实践
Basic use of scrapy
ESP8266-Arduino programming example-HC-SR04 ultrasonic sensor driver
CCNA-ACL(访问控制列表)标准ACL 扩展ACL 命名ACL
Anaconda Navigator stuck on loading applications
Chapter 14 Type Information
国轩高科瑞交所上市:募资近7亿美元 为瑞士今年最大融资项目
SwiftUI iOS 精品开源项目之 完整烘焙食品菜谱App基于SQLite(教程含源码)
【剑指 Offe】剑指 Offer 17. 打印从1到最大的n位数
Read the "Language Model" in one article
【AGC】构建服务1-云函数示例
这玩意儿都能优化?果然是细节都在魔鬼里。
AWS 控制台
MySQL——基础知识
轻量级网络 ESPNetv2
深化校企合作 搭建技术技能人才成长“立交桥”
【HMS Core】【FAQ】运动健康、音频编辑、华为帐号服务 典型问题合集7









