[C++] Short, Concise and Easy to understand. Beats 100% time. With comments
\nclass Solution {\npublic:\n    int height(TreeNode* r) {\n        return (r) ? 1 + max(height(r->left), height(r->right)) : 0;\n    }\n    TreeNode* subtreeWi
```\nclass Solution {\npublic:\n    int height(TreeNode* r) {\n        return (r) ? 1 + max(height(r->left), height(r->right)) : 0;\n    }\n    TreeNode* subtreeWithAllDeepest(TreeNode* root) {\n        if(!root) return NULL;\n        int lh = height(root->left);\n        int rh = height(root->right);\n        \n        if(lh == rh) return root; // if height of left and right subtrees are same, this is the answer\n        if(lh > rh) return subtreeWithAllDeepest(root->left); // go with the one with more height as LCA lies there\n        return subtreeWithAllDeepest(root->right);\n    }\n};\n```
[]