LeetCode - 142. Linked List Cycle II

栏目: 编程工具 · 发布时间: 7年前

内容简介:Given a linked list, return the node where the cycle begins. If there is no cycle, returnNote: Do not modify the linked list.Follow up:

Given a linked list, return the node where the cycle begins. If there is no cycle, return null .

Note: Do not modify the linked list.

Follow up:

Can you solve it without using extra space?

快慢指针,参考 LeetCode - 141. Linked List Cycle

先判断是否有环,记录第一次相遇位置,然后快指针指向head指针,同步走,再次相遇时的节点即为环的入口。

证明:TODO

/**
 * Definition for singly-linked list.
 * class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode detectCycle(ListNode head) {
        if (head == null)
            return null;
        ListNode fast = head, slow = head;
        int cnt = 0;
        while (true) {
            if (fast == null)
                return null;
            if (cnt > 0 && fast == slow)
                break;
            slow = slow.next;
            fast = fast.next;
            if (slow == null || fast == null)
                return null;
            fast = fast.next;
            cnt ++;
        }
        fast = head;
        while (fast != slow) {
            fast = fast.next;
            slow = slow.next;
        }
        return fast;
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

软技能

软技能

John Sonmez / 王小刚 / 人民邮电出版社 / 2016-7 / 59.00元

这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。本书聚焦于软件开发人员生活的方方面面,从揭秘面试的流程到精耕细作出一份杀手级简历,从创建大受欢迎的博客到打造你,从提高自己工作效率到与如何与“拖延症”做斗争,甚至包括如何投资不动产,如何关注自己的健康。本......一起来看看 《软技能》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具