Java 100% Fast
\n public TreeNode subtreeWithAllDeepest(TreeNode root) {\n        if(root == null) return root;\n        \n        int leftH = height(root.left);\n        int 
```\n public TreeNode subtreeWithAllDeepest(TreeNode root) {\n        if(root == null) return root;\n        \n        int leftH = height(root.left);\n        int rightH = height(root.right);\n        if(leftH == rightH) {\n            return root;\n        } else if(leftH > rightH) {\n            return subtreeWithAllDeepest(root.left);\n        }\n        return subtreeWithAllDeepest(root.right);\n    }\n    \n    int height(TreeNode root) {\n        if(root == null) return 0;\n        int left = height(root.left);\n        int right = height(root.right);\n        return 1 + Math.max(left, right);\n    }\n```
['Java']