0
我试图递归调用我的预订和反向预购方法。这些方法在基于数组的二叉树上工作,它们应该返回子树所有元素的长度。但是他们要做的是返回子树的第一个元素的长度。如果任何人都可以帮助它将不胜感激。预购和反向预购二叉树遍历
int left_width(vector<string>& vec, int i, int ret) {
int left = i * 2 + 1;
int right = i * 2 + 2;
ret = ret + vec[i].length();
if (left < (int)vec.size() && right <= (int)vec.size()) {
left_width(vec, left, ret);
left_width(vec, right, ret);
}
return ret;
}
int right_width(vector<string>& vec, int i, int ret) {
int right = i * 2 + 2;
int left = i * 2 + 1;
ret = ret + vec[i].length();
if (left < (int)vec.size() && right <= (int)vec.size()) {
right_width(vec, right, ret);
right_width(vec, left, ret);
}
return ret;
}
感谢您的帮助! –
如果这回答你的问题,一定要投票并将其标记为答案。谢谢! –