【发布时间】:2021-05-31 15:30:36
【问题描述】:
您好,我这里有这段代码:
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val) {
val = _val;
}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
class Solution {
public:
vector<vector<int>> levelOrder(Node* root) {
vector<vector<int>> output;
Calculate(root, 0, output);
return output;
}
private:
void Calculate(Node* root, int level, vector<vector<int>>& out)
{
out[level].push_back(root->val);
for(u_int i = 0; i < root->children.size(); i++)
{
if(root->children[i]!=nullptr)
Calculate(root->children[i], level+1, out);
}
}
};
输入是长度为 n 的 n 叉树。我正在尝试将值写入相应的向量。每个向量都是树的级别,每个向量中都有另一个向量,其中填充了树当前级别的数字。
但是当我运行代码时,我得到了这个错误:引用绑定到类型为“std::vector
我对 C++ 有点陌生,所以我不知道如何解决它。我尝试用一些逻辑来做它并询问节点是否为空,但这似乎不是问题。
这里有问题:https://leetcode.com/problems/n-ary-tree-level-order-traversal/
感谢您的任何帮助。
【问题讨论】:
-
请创建minimal reproducible example 并显示您为程序提供的输入。
-
我不是 100% 输入的样子,但我编辑了帖子,添加了问题的链接及其对输入的解释。这是链接:leetcode.com/problems/n-ary-tree-level-order-traversal