leetcode:142. Linked List Cycle II(Java)解答

原创 2015年12月27日 16:36:19

转载请注明出处:z_zhaojun的博客
原文地址:http://blog.csdn.net/u012975705/article/details/50412899
题目地址:https://leetcode.com/problems/linked-list-cycle-ii/

Linked List Cycle II

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?

解法(Java):

/**
 * 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 || head.next ==null) {
            return null;
        }
        ListNode slow = head;
        ListNode fast = head.next;
        while (slow != null && fast != null && slow != fast) {
            // if (slow == fast) {
            //     temp = slow;
            //     break;
            // }
            slow = slow.next;
            fast = fast.next == null ? fast.next : fast.next.next;
        }
        if (slow == fast) {
            slow = head;
            fast = fast.next;
            while (slow != fast) {
                slow = slow.next;
                fast = fast.next;
            }
            return slow;
        }
        return null;
    }
}
版权声明:本文为博主原创文章,转载请注明出处。博客首页:http://blog.csdn.net/u012975705。订阅:http://blog.csdn.net/u012975705/rss/list

[Leetcode-142] Linked List Cycle II(链表有环详细分析)

环的长度是多少? 如何找到环中第一个节点(即Linked List Cycle II)? 如何将有环的链表变成单链表(解除环)? 如何判断两个单链表是否有交点?如何找到第一个相交的节点?...
  • xy010902100449
  • xy010902100449
  • 2015年10月09日 09:33
  • 1403

【LeetCode】141 Linked List Cycle (java实现)

Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without usi...
  • styshoo
  • styshoo
  • 2015年09月02日 23:34
  • 1149

(Leetcode 142)Linked List Cycle (II) (快慢指针详解)

Leetcode141题和142题很相似,都涉及到了快慢指针的算法。快慢指针就是设置两个指针,一个快指针,一个慢指针来达到解题的目的。下面分为以下几个模块来讲解: 解第141题解第142题为什么快...
  • willduan1
  • willduan1
  • 2016年03月20日 21:05
  • 8270

【LeetCode-面试算法经典-Java实现】【142-Linked List Cycle II(单链表中有环II)】

【142-Linked List Cycle II(单链表中有环II)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a linked list, retur...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月19日 06:38
  • 3038

leetcode_142_Linked List Cycle II

思路: 从头开始遍历链表并将结点的引用存储在HashSet中,出现重复的地方就是出现环的地方。...
  • dfb198998
  • dfb198998
  • 2015年02月04日 20:00
  • 531

LeetCode142 Linked List Cycle II

题目链接: https://leetcode.com/problems/linked-list-cycle-ii/ 题目描述:给一个链表,如果有环,找到环开始位置的节点。如果没有环,返回null。...
  • codeTZ
  • codeTZ
  • 2015年12月12日 20:33
  • 290

leetcode141: Linked List Cycle

Given a linked list, determine if it has a cycle in it.Follow up: Can you solve it without using ex...
  • u010111016
  • u010111016
  • 2016年05月17日 10:30
  • 1531

LeetCode 141 — Linked List Cycle(C++ Java Python)

题目:http://oj.leetcode.com/problems/linked-list-cycle/ Given a linked list, determine if it has a cyc...
  • dragon_dream
  • dragon_dream
  • 2014年02月27日 21:26
  • 2287

[LeetCode]142.Linked List Cycle II

题目: Given a linked list, return the node where the cycle begins. If there is no cycle, return null....
  • SunnyYoona
  • SunnyYoona
  • 2015年02月05日 19:38
  • 1993

Leetcode 142 Linked List Cycle II

Given a linked list, return the node where the cycle begins. If there is no cycle, return null. N...
  • u012614906
  • u012614906
  • 2016年11月18日 11:08
  • 615
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode:142. Linked List Cycle II(Java)解答
举报原因:
原因补充:

(最多只允许输入30个字)