/*performing simple tree traversal in C++ and copying tree levels node data to vector<vector<int>> rows:
Getting error: no matching function for call to 'std::vector<int>::push_back(std::vector<int>&)'
*/
class Sample {
public:
vector<vector<int>> zigzagLevelOrder(TreeNode* root)
{
vector<vector<int>> result;
zigzagLevelOrder(root, result, 0);
return result;
}
void zigzagLevelOrder(TreeNode* root, vector<vector<int>>&result, int level)
{
if(level == result.size())
{
vector<int> v;
v.push_back(root->val);
result[level].push_back(v);
}
else
{
result[level].push_back(root->val);
}
zigzagLevelOrder(root->left, result, level + 1);
zigzagLevelOrder(root->right, result, level + 1);
}
};
答案 0 :(得分:1)
String result = Arrays.stream(inputString.split("")).reduce("", (accumlator, letter) -> accumlator + " " + myMap.get(letter));
System.out.println(result); //" apple spinach dog fish goat"
- result[level].push_back(v);
是对result[level]
的引用(虽然索引超出范围),因此应为vector< int >
答案 1 :(得分:0)
感谢大家的帮助。问题解决了,这是工作解决方案。任何关于优化这一点的评论都是值得欢迎的。
Start of log_console
Test message to console =======
After test message to console