博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]Linked List Cycle
阅读量:5962 次
发布时间:2019-06-19

本文共 955 字,大约阅读时间需要 3 分钟。

题目:给定一个单链表,推断链表是否存在环路(是否能不使用额外内存空间)

算法:快慢指针

原理:每次,快指针走一步,慢指针走两步,若链表存在循环。则快慢指针终于必然会在某个节点汇合。否则直到遍历完整个链表都不会汇合

/** * Definition for singly-linked list. * class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null; *     } * } */public class Solution {    public boolean hasCycle(ListNode head) {	    	if (null==head || null==head.next) {	    		return false;	    	}	    		    	ListNode fast = head;  // fast pointer take one step	    	ListNode slow = head.next.next;  // slow pointer take two steps	    	while (null!=fast && null!=slow) {	    		if (fast == slow) {	    			// fast pointer meet slow pointer, it means list has cycle!	    			return true;	    		}	    			    		if (null == slow.next) {	    			// it mean slow pointer has reach the list tail! No cycle!	    			return false;	    		}	    		else {	    			fast = fast.next;		    		slow = slow.next.next;	    		}	    	}	    	return false;	    }}

转载地址:http://iijax.baihongyu.com/

你可能感兴趣的文章
angularJS 限制字符串输出长度
查看>>
顺序表的实现---动态
查看>>
HDU-1181 变形课(多种方式,好题)
查看>>
RHCE认证
查看>>
键值和服务器命令
查看>>
Juniper Junos SRX NAT ARP代理
查看>>
我的友情链接
查看>>
Wamp 提示Aestan Tray Menu服务未启动错误
查看>>
快速搭建vim 开发集成环境
查看>>
java网络编程-多线程
查看>>
java 定位工具
查看>>
javascript:有一种类型 -------既不是数据也不是对象!
查看>>
SELinux
查看>>
安装mysql
查看>>
集群、负载均衡及分布式系统架构
查看>>
对象存储
查看>>
python中struct模块及packet和unpacket
查看>>
Idea SpringMVC+Spring+MyBatis+Maven调整【转】
查看>>
关于App测试的重点
查看>>
device-mapper 块级重删(dm dedup) <3>代码结构(4)
查看>>