C++ The Simplest Solution, Easy to Understand, Recursive, faster than 85%
\nclass Solution {\npublic:\n    int getDepth(TreeNode* root) {\n        if (!root)\n            return 0;\n        return max(getDepth(root->right), getDepth(r
```\nclass Solution {\npublic:\n    int getDepth(TreeNode* root) {\n        if (!root)\n            return 0;\n        return max(getDepth(root->right), getDepth(root->left)) + 1;\n    }\n    \n    TreeNode* subtreeWithAllDeepest(TreeNode* root) {\n        if (!root)\n            return NULL;\n        \n        int right_depth = getDepth(root->right);\n        int left_depth = getDepth(root->left);\n        \n        if (right_depth == left_depth)\n            return root;\n        \n        if (right_depth > left_depth) \n            return subtreeWithAllDeepest(root->right);\n        \n        else \n            return subtreeWithAllDeepest(root->left);\n    }\n};\n```\n**Like it? please upvote...**
['C']