nodes 存储 {addr: (val, next_addr)}。head_addr(输入第一行的 addr)。next_addr 顺序重建链表。slow:每次移动 1 步。fast:每次移动 2 步。给定一个 单链表,其输入格式为 (地址, 值, 下一个地址) 的三元组,判断链表是否存在 环。
true。false。第一行输入一个整数 n,表示链表的 节点数。(0 ≤ n ≤ 10⁴)
接下来的 n 行,每行包含 三个整数:
addr:当前节点的 地址(唯一标识)。val:当前节点的 值(-10⁵ ≤ val ≤ 10⁵)。next_addr:当前节点的 下一个节点地址:
next_addr = -1,表示链表结束。next_addr 指向某个 addr,表示连接到该地址,可能形成 环。特别规定:
addr 永远是 head(链表头)。next_addr 构建链表。true 或 false,表示链表是否存在环。输入
4
100 3 200
200 2 300
300 0 400
400 -4 200
输出
true
说明:
100 -> 200 -> 300 -> 400
^ |
|_________|
400 连接到 200 形成环。输入
2
100 1 200
200 2 -1
输出
false
说明:
100 -> 200 -> NULL
false。输入
1
100 1 -1
输出
false
说明:
false。