#1007. 判断链表是否有环(基础)

判断链表是否有环(基础)

Description

链表指的是将需要处理的数据对象以节点的形式,通过指针串联在一起的一种数据结构。链表中的每个节点一般由数据区域和指针区域两部分构成,其中数据区域用于保存实际需要处理的数据元素,指针区域用来保存该节点后继节点的存储地址。

给出一个链表,请遍历该链表,并对该链表中是否存在环进行判断。

提示:可以采用双指针(slow, fast)对链表进行遍历, 其中fast指针向前走的速度是slow的2倍,若链表中存在环,则fast指针一定能追赶到slow指针。

Format

Input

第1行,链表节点数量n和头指针head。

第2~n+1行,每行为两个数x和y。其中x表示该节点数据域的值,y表示该节点指针域的值。

Output

若该链表中不存在环,则输出"NO"; 若该链表中存在环,则输出"YES"。

Samples

5 2
40 3
20 4
10 1
50 -1
30 0
NO

Limitation

1s, 1024KiB for each test case.