Help me in solving UNICOURS problem

My issue

pls give me sol of this code

My code

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int T = scanner.nextInt();
        for (int i = 0; i < T; i++) {
            int n = scanner.nextInt();
            int[] a = new int[n];
            for (int j = 0; j < n; j++) {
                a[j] = scanner.nextInt();
            }
            boolean[] visited = new boolean[n];
            int count = 0;
            for (int j = 0; j < n; j++) {
                if (!visited[j]) {
                    dfs(a, visited, j);
                    count++;
                }
            }
            System.out.println(count);
        }
    }

    public static void dfs(int[] a, boolean[] visited, int node) {
        if (node!= -1) {
            visited[node] = true;
            if (a[node]!= node) {
                if (!visited[a[node]]) {
                    dfs(a, visited, a[node]);
                }
            }
        }
    }
}

Problem Link: Courses in an university Practice Coding Problem