文章

142. 有环的链表

问题142 有环的链表 ★☆☆☆☆

https://leetcode-cn.com/problems/linked-list-cycle-ii/

判断链表是否有环,有环则返回环的起始节点,否则返回null. 环的起始节点就是链表(传统意义上的)最后一个节点的下一个节点,所以记录每个节点的访问状态,当访问到某个访问状态是已访问的节点的时候,这个节点就是环的起始节点。

1
2
3
4
5
6
7
8
9
10
11
12
13
	public ListNode detectCycle(ListNode head) {
		Set<ListNode> visited = new HashSet<>();

		for (ListNode p = head; p != null; p = p.next) {
			if (visited.contains(p)) {
				return p;
			}

			visited.add(p);
		}

		return null;
	}

在 LeetCode 查看

本文由作者按照 CC BY 4.0 进行授权