EASY DFS C++ SOLUTION
\nclass Solution {\npublic:\n    TreeNode* ans;\n    int help(TreeNode* root){\n        if(!root)return 0;\n        int l = help(root->left);\n        int r = h
```\nclass Solution {\npublic:\n    TreeNode* ans;\n    int help(TreeNode* root){\n        if(!root)return 0;\n        int l = help(root->left);\n        int r = help(root->right);\n        return max(l,r)+1;\n    }\n    bool help2(TreeNode*root,int ht){\n        if(ht==0)\n            return true;\n        if(!root)return false;\n        bool l = help2(root->left,ht-1);\n        bool r = help2(root->right,ht-1);\n        if(l and r){\n            // cout<<root->val<<" ";\n            ans = root;\n        }\n        return l or r;\n    }\n    TreeNode* subtreeWithAllDeepest(TreeNode* root) {\n        int ht=0;\n        ht = help(root);\n        help2(root,ht);\n        return ans;\n    }\n};\n```
['Depth-First Search', 'Recursion', 'C++']