Сегодня я написал некоторый код, имеющий дело с двоичным деревом.Позже я заметил ошибку в коде:
void find(TreeNode* root, int target) {
stack<TreeNode*> myStack{{root}};
while(!myStack.empty()){
auto& top = myStack.top(); // here I used auto& by mistake
...
}
}
Однако меня смущает auto& top = myStack.top();
.Какой тип для top
после вычета типов?Это TreeNode &
или TreeNode* &
?
Как насчет того, чтобы я использовал auto* top = myStack.top()
?