C++ || DFS || Neat and Simple Code
\nclass Solution {\npublic:\n    bool btreeGameWinningMove(TreeNode* root, int n, int x) {\n        TreeNode* xNode = findNode(root, x);\n        int leftCount 
```\nclass Solution {\npublic:\n    bool btreeGameWinningMove(TreeNode* root, int n, int x) {\n        TreeNode* xNode = findNode(root, x);\n        int leftCount = countNodes(xNode->left);\n        int rightCount = countNodes(xNode->right);\n        int parentCount = n - leftCount - rightCount - 1;\n        \n        int max = (leftCount > rightCount &&  leftCount > parentCount) ? leftCount : (rightCount > parentCount) ? rightCount : parentCount;\n        if( max > n/2)\n            return true;\n        return false;\n    }\n    \n    int countNodes(TreeNode* root){\n        if(!root)\n            return 0;\n        return countNodes(root->left) + countNodes(root->right) + 1;\n        \n    }\n    \n    TreeNode* findNode(TreeNode* root, int x){\n        if(!root)\n            return NULL;\n        if(root->val == x)\n            return root;\n        TreeNode* left = findNode(root->left, x);\n        TreeNode* right = findNode(root->right, x);\n        return (left) ? left : right;\n    }\n};\n```
['Depth-First Search', 'Recursion', 'C']