Simple java solution with basic intuition
If you carefully notice then you will observe that whichever player(player 1 or player 2) color more than half nodes will win the game, this is basic intuition 
If you carefully notice then you will observe that whichever player(player 1 or player 2) color more than half nodes will win the game, this is basic intuition of this problem. Now given the node choosen by player 1, player 2 can choose a node either from left or from right child or it can choose parent of given node. \nSo what we will do is we will find number of nodes in left and right of node selected by player 1 and then number of nodes player2 can color if he not choose node from left and right of node choosen by player1(above nodes) = n - left nodes - right nodes -1 and if max(left nodes,right nodes,above nodes) > n/2 then player 2 will win else he will lose.\n\n\nclass Solution {\n    public boolean btreeGameWinningMove(TreeNode root, int n, int x) {\n        \n        TreeNode x_node=find(root,x);       // find node chossen by player 1\n        int left_nodes=nodes(x_node.left);  // number of nodes in left side\n        int right_nodes=nodes(x_node.right);  // number of nodes in right side\n        int above_nodes=(n-left_nodes-right_nodes-1); // number of nodes above the choosen node\n        \n        \n        int max_nodes=Math.max(above_nodes,Math.max(left_nodes,right_nodes));\n        if(max_nodes>n/2)\n        {\n            return true;\n        }\n        return false;\n    }\n    \n    public int nodes(TreeNode root)\n    {\n        if(root==null)\n        {\n            return 0;\n        }\n        return 1+nodes(root.left)+nodes(root.right);\n    }\n    public TreeNode find(TreeNode root,int x)\n    {\n        if(root==null)\n        {\n            return null;\n        }\n        if(root.val==x)\n        {\n            return root;\n        }\n        TreeNode left_node=find(root.left,x);\n        if(left_node!=null && left_node.val==x)\n        {\n            return left_node;\n        }\n        TreeNode right_node=find(root.right,x);\n        if(right_node!=null && right_node.val==x)\n        {\n            return right_node;\n        }\n        return null;\n    }\n}\n\nThanks for reading :-)
[]