六月集训(第19天)—二叉树(1/4)
二叉树
1. 331. 验证二叉树的前序序列化
思路:
除根节点提供两个出度
叶节点提供一个入度
其余结点提供一个入度和两个出度
通过数学计算可知,满足成为一颗二叉树的条件是,树的出度等于入度,且中间不能出现某个结点提供入度后入度大于出度的情况
class Solution {
public:
bool isValidSerialization(string preorder) {
preorder += ',';
int preorder_len = preorder.size(), i;
int indeg = -1;
int outdeg = 0;
for (i = 0; i < preorder_len; ++i) {
if (preorder[i] == ',') continue;
++indeg;
if (outdeg < indeg) return false; // 要在结点提供出度之前判断
if (preorder[i] != '#') { // 接受完整的数字
outdeg += 2;
while (preorder[i] != ',') ++i;
--i;
}
}
return outdeg == indeg;
}
};
2.
思路:
在这里插入代码片
3.
思路:
在这里插入代码片
4.
思路:
在这里插入代码片
东方欲晓,莫道君行早。

浙公网安备 33010602011771号