<p>给你一个 <code>n</code> 个节点的 <b>有向图</b> ,节点编号为 <code>0</code> 到 <code>n - 1</code> ,其中每个节点 <strong>至多</strong> 有一条出边。</p> <p>图用一个大小为 <code>n</code> 下标从<strong> 0</strong> 开始的数组 <code>edges</code> 表示,节点 <code>i</code> 到节点 <code>edges[i]</code> 之间有一条有向边。如果节点 <code>i</code> 没有出边,那么 <code>edges[i] == -1</code> 。</p> <p>请你返回图中的 <strong>最长</strong> 环,如果没有任何环,请返回 <code>-1</code> 。</p> <p>一个环指的是起点和终点是 <strong>同一个</strong> 节点的路径。</p> <p> </p> <p><strong>示例 1:</strong></p> <p><img alt="" src="https://assets.leetcode.com/uploads/2022/06/08/graph4drawio-5.png" style="width: 335px; height: 191px;" /></p> <pre> <b>输入:</b>edges = [3,3,4,2,3] <b>输出去:</b>3 <b>解释:</b>图中的最长环是:2 -> 4 -> 3 -> 2 。 这个环的长度为 3 ,所以返回 3 。 </pre> <p><strong>示例 2:</strong></p> <p><img alt="" src="https://assets.leetcode.com/uploads/2022/06/07/graph4drawio-1.png" style="width: 171px; height: 161px;" /></p> <pre> <b>输入:</b>edges = [2,-1,3,1] <b>输出:</b>-1 <b>解释:</b>图中没有任何环。 </pre> <p> </p> <p><strong>提示:</strong></p> <ul> <li><code>n == edges.length</code></li> <li><code>2 <= n <= 10<sup>5</sup></code></li> <li><code>-1 <= edges[i] < n</code></li> <li><code>edges[i] != i</code></li> </ul>