Check if every node can me made accessible from a node of a Tree by at most N / 2 given operations | Java program for the above approach ; Function to check if there is a node in tree from where all other nodes are accessible or not ; Store the indegree of every node ; Store the nodes having indegree equal to 0 ; Traverse the array ; If the indegree of i - th node is 0 ; Increment count0 by 1 ; If the number of operations needed is at most floor ( n / 2 ) ; Otherwise ; Driver Code ; Given number of nodes ; Given Directed Tree
import java . io . * ; import java . util . HashMap ; class GFG { public static void findNode ( HashMap < Integer , Integer > map , int n ) { int [ ] a = new int [ n ] ; for ( int i = 0 ; i < n ; i ++ ) { a [ i ] = map . getOrDefault ( i + 1 , 0 ) ; } int count0 = 0 ; for ( int i = 0 ; i < n ; i ++ ) { if ( a [ i ] == 0 ) { count0 ++ ; } } count0 -= 1 ; if ( count0 <= Math . floor ( ( ( double ) n ) / ( ( double ) 2 ) ) ) { System . out . println ( " Yes " ) ; } else System . out . println ( " No ▁ " ) ; } public static void main ( String [ ] args ) { int N = 3 ; HashMap < Integer , Integer > map = new HashMap < > ( ) ; map . put ( 1 , 0 ) ; map . put ( 2 , 2 ) ; map . put ( 3 , 0 ) ; findNode ( map , N ) ; } }