A java starightforward and stepwise solution(comments included) || 0ms
class Solution {\n    public boolean btreeGameWinningMove(TreeNode root, int n, int x) {\n       TreeNode red=getNode(root,x);    //getting the x node\n        
```class Solution {\n    public boolean btreeGameWinningMove(TreeNode root, int n, int x) {\n       TreeNode red=getNode(root,x);    //getting the x node\n        int countPar=getCount(root,red);    //count if I set blue as parent of red\n        int countLeft=getCount(red.left,red);    //count if I set blue as leftChild of red\n        int countRight=getCount(red.right,red);    //count if I set blue as rightChild of red\n        return countPar>n/2||countLeft>n/2||countRight>n/2;    \n\t\t/*n/2 is the max either color node can have, and since n is odd, one will definitely be greater than the other. For example->5(2,3)*/\n    }\n    \n    public TreeNode getNode(TreeNode root,int x){\n        if(root==null)return null;\n        TreeNode left=getNode(root.left,x);\n        TreeNode right=getNode(root.right,x);\n        if(left!=null&&left.val==x)return left;\n        if(right!=null&&right.val==x)return right;\n        if(root.val==x)return root;\n        return null;\n    }\n    \n    public int getCount(TreeNode node,TreeNode block){\n        if(node==null||node==block)return 0;    //if node encounters the red node or null-> return\n        int left=getCount(node.left,block);\n        int right=getCount(node.right,block);\n        return left+right+1;\n    }\n}\n```\n\nPS: Don\'t get confused with the statement that the nodes "take turns"
['Binary Tree', 'Java']