LeetCode -- Linked List cycle

原创 2015年11月20日 15:13:03
本题描述:


Given a linked list, determine if it has a cycle in it.


Follow up:
Can you solve it without using extra space?


检测链表中是否有环。


思路:
经典算法,使用快慢指针,快的一次走两步,慢的一次走一步,如果有环它们一定会相遇。


实现代码:




/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     public int val;
 *     public ListNode next;
 *     public ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    
    public bool HasCycle(ListNode head) {
        if(head == null){
    		return false;
    	}
    	
    	var p = head;
    	var q = head;


    	while(p != null && q != null && q.next != null){
    		var t = q;
    		p = p.next;
    		q = q.next.next;
    		if(ReferenceEquals(p,q)){
    			return true;
    		}
    	}
    	return false;
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)

翻译反转一个单链表。原文Reverse a singly linked list.分析我在草纸上以1,2,3,41,2,3,4为例,将这个链表的转换过程先用描绘了出来(当然了,自己画的肯定不如博客上面...
  • NoMasp
  • NoMasp
  • 2016年01月14日 06:22
  • 3755

【LeetCode-面试算法经典-Java实现】【203-Remove Linked List Elements(删除单链表中的元素)】

【203-Remove Linked List Elements(删除单链表中的元素)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.co...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月26日 07:21
  • 2315

【python】【leetcode】【算法题目2—Add Two Numbers】

【python】【leetcode】【算法题目2—Add Two Numbers】 题目原文: You are given two linked lists representing two non-...
  • u014615155
  • u014615155
  • 2016年11月21日 12:05
  • 1784

LeetCode Linked List Cycle II(找到带环单向链表的环起始位置)

题目要求: Given a linked list, return the node where the cycle begins. If there is no cycle, return...
  • lqcsp
  • lqcsp
  • 2014年04月06日 11:52
  • 631

数据结构与算法[LeetCode]—Linked List Cycle 确定单链表是否有环,并找出第一个环结点

Linked List Cycle Given a linked list, determine if it has a cycle in it. Follow up: Can you s...
  • SUN20082567
  • SUN20082567
  • 2013年11月12日 16:17
  • 1021

leetcode Linked List Cycle II 单链表中的环问题集锦

Linked List Cycle Given a linked list, determine if it has a cycle in it. Follow up: Can you s...
  • sdnu111111111
  • sdnu111111111
  • 2014年08月02日 08:31
  • 373

LeetCode OJ:Linked List Cycle II

Linked List Cycle II  Total Accepted: 4952 Total Submissions: 16449My Submissions Given ...
  • starcuan
  • starcuan
  • 2014年01月19日 22:08
  • 835

【LeetCode】Linked List Cycle II

参考链接 http://www.cnblogs.com/x1957/p/3406448.html 题目描述 Linked List Cycle II   Give...
  • chinasnowwolf
  • chinasnowwolf
  • 2014年03月31日 11:38
  • 452

leetcode:Linked List Cycle II

COPY FROM: 比I麻烦点的就是找到循环开始点TAT I只是判断是否循环。要求不使用额外空间(不然hash就可以了 按I的思路,我们又慢指针S和快指针F。。。F走两...
  • tracyliang223
  • tracyliang223
  • 2014年07月10日 14:23
  • 647

【LeetCode】Linked List Cycle II

题目 Given a linked list, return the node where the cycle begins. If there is no cycle, return nu...
  • Mars_NAVY
  • Mars_NAVY
  • 2014年12月10日 15:47
  • 653
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode -- Linked List cycle
举报原因:
原因补充:

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