Я использовал ссылку в этом коде для map<int ,int>
, но когда я не использую ссылку, карта не заполняется рекурсивно. Я уже решил эту проблему, но не знаю, почему мне нужно использовать ссылку, когда я уже указал map<int ,int>
в качестве параметра. Можете ли вы проиллюстрировать подробно?
void util(Node* root,map<int,int> &m, int level) {
if (!root) return;
m[level]+=root->data;
util(root->right,m,level);
util(root->left,m,level+1);
}
void diagonalSum(Node* root) {
map<int,int> m;
util(root,m,0);
// cout<<m.size();
for(auto i=m.begin();i!=m.end();i++){
cout<<i->second<<" ";
}
cout<<"\n";
}