链接:https://leetcode-cn.com/problems/verify-preorder-serialization-of-a-binary-tree/
这道题可以转化为入度/出度的问题,二叉树成立的条件是要满足各节点度的和为0,根节点入度为0,出度为2,内部节点出度位2,入度为1,叶节点出度为0,入度为1,。
以逗号为分隔,考虑逗号前的一个字符,注意最后一个字符要单独处理。
class Solution {
public boolean isValidSerialization(String preorder) {
int degree = 1;
for(int i = 0;i<preorder.length();i++)
{
if(preorder.charAt(i)==',')
{
if(preorder.charAt(i-1)=='#')
degree--;
else
degree++;
if(degree<=0)
return false;
}
}
if(preorder.charAt(preorder.length()-1)=='#')
degree--;
else
degree++;
return (degree==0);
}
}