题目
读了好久读不懂题意,我这么高的语文水平,当然是出题人的错了。
返回能满足 以该节点为根的子树中包含所有题目给的这棵树最深的节点 这一条件的具有最大深度的节点。
class Solution {
typedef pair<TreeNode*,int> pi;
public:
pi dfs(TreeNode *root){
if(!root) return {0,0};
pi x=dfs(root->left),y=dfs(root->right);
int dep1=x.second,dep2=y.second;
if(dep1==dep2) return {root,dep1+1};//lson与rson深度相同,要把所有最深的节点都包含 则返回root
if(dep1>dep2) return {x.first,dep1+1};
return {y.first,dep2+1};
}
TreeNode* subtreeWithAllDeepest(TreeNode* root) {
return dfs(root).first;
}
};