验证二叉树的前序序列化
一个槽位可以被看作「当前二叉树中正在等待被节点填充」的那些位置。
class Solution
{
public:
bool isValidSerialization(string preorder)
{
int n = preorder.length();
int i = 0;
int slots = 1;//槽位
while (i < n)
{
if (slots == 0)
{
return false;
}
if (preorder[i] == ',')
{
i++;
continue;
}else if (preorder[i] == '#')
{
slots--;
i++;
continue;
}else
{
// 读一个数字
while (i < n && preorder[i] != ',')
{
i++;
}
slots++; // slots = slots - 1 + 2
}
}
return slots == 0;
}
};