判断链表是否成环
给定一个链表,判断链表中是否有环。
示例:
输入:[3,2,0,4] 输出:true
解释:链表中存在一个环
题解:
/**
* @param {ListNode} head
* @return {boolean}
*/
const hasCycle = (head) => {
while(head){
if(head.flag) return true;
head.flag = true;
head = head.next
}
return false
}
规则:
立 flag 等重新回到 flag 处则存在环
定位环的起点
给定一个链表,返回链表开始入环的第一个结点。 如果链表无环,则返回 null。
示例:
示例 1:
输入:head = [3,2,0,-4](如上图)
输出:结点2
解释:链表中有一个环,其尾部连接到第二个结点。
示例 2:
输入:head = [1,2]
输出:结点1
解释:链表中有一个环,其尾部连接到第一个结点。
示例 3:
输入:head = [1]
输出:null
解释:链表中没有环。
题解:
/**
* @param {ListNode} head
* @return {boolean}
*/
const hasCycle = (head) => {
while(head){
if(head.flag) return head;
head.flag = true;
head = head.next
}
return null
}
规则:
立 flag 等重新回到 flag 处返回此结点