美文网首页iOS、Swift
利用快慢指针获取链表的中间值

利用快慢指针获取链表的中间值

作者: 梁森的简书 | 来源:发表于2021-01-31 21:51 被阅读0次

创建两个指针分别指向头节点,快指针每次移动两位,慢指针每次移动一位,当快指针移动到最后一位的时候,慢指针指向的位置就是链表的中间位置

/// 快慢指针解决中间值
    private func testMid() {
        let firstNode = Node(item: "1", next: nil)
        let secondNode = Node(item: "2", next: nil)
        let thirdNode = Node(item: "3", next: nil)
        let forthNode = Node(item: "4", next: nil)
        let fifthNode = Node(item: "5", next: nil)
        let sixthNode = Node(item: "6", next: nil)
        let seventhNode = Node(item: "7", next: nil)
        let eightNode = Node(item: "8", next: nil)
        
        firstNode.next = secondNode
        secondNode.next = thirdNode
        thirdNode.next = forthNode
        forthNode.next = fifthNode
        fifthNode.next = sixthNode
        sixthNode.next = seventhNode
        seventhNode.next = eightNode
        
        let mind = getMind(firstNode: firstNode)
        print("\(mind)")
    }
    
    private func getMind(firstNode: Node) -> String{
        var fast = firstNode
        var low = firstNode
        while fast.next?.next != nil {
            fast = fast.next!.next!
            low = low.next!
        }
        return low.item!
    }

dmeo地址:https://github.com/yangguanghei/studyDateStructure

相关文章

  • 利用快慢指针获取链表的中间值

    创建两个指针分别指向头节点,快指针每次移动两位,慢指针每次移动一位,当快指针移动到最后一位的时候,慢指针指向的位置...

  • [Leetcode] 876. 链表的中间结点

    876. 链表的中间结点 来源: 876. 链表的中间结点 1. 解题思路 利用快慢指针 2. 代码

  • 0876-链表的中间结点

    链表的中间结点 方案一 使用快慢指针 借助单链表实现 C-源代码

  • 234. 回文链表

    一. 题目: 二. 思路: 快慢指针找到中间结点,反转中间结点以后的链表 拿反转之后的链表和前面链表进行比较,如果...

  • 利用快慢指针获取链表闭环的入口

    创建两个指针分别指向头节点,同时创建一个临时空指针,当快慢指针相遇的时候(有闭环),将临时空指针指向头节点,同时继...

  • 算法学习--双指针

    双指针分类 快慢指针 左右指针 快慢指针:主要解决链表相关问题,比如:典型的判断链表中是否包含环、链表倒是第K个节...

  • 8.链表(LinkedList)

    链表的反转 solution1 solution2 快慢指针: 1.给定一个链表,如何找到链表的中间点? 思想:S...

  • 快慢指针寻找链表中间结点

    声明: 转载文字或图片请在文首注明出处,3Q. 原理: 我们设置两个指针 slow 和 fast, slow 每...

  • 快慢指针的应用

    快慢指针的快慢主要是指在遍历链表过程中指针移动速度的快慢。比如遍历单链表,我们可以让指针每次移动一个节点,也可以让...

  • leetcode 单链表的各种算法

    1 递归实现:合并两个有序的单链表 2 递归实现:单链表逆序存入vector 3 循环实现:快慢指针找到单链表中间...

网友评论

    本文标题:利用快慢指针获取链表的中间值

    本文链接:https://www.haomeiwen.com/subject/dzhdtltx.html