前言
持续更新了
正文
问题来源
本问题来自leetcode上的331题。
问题描述
序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。
示例 1:
输入: "9,3,4,#,#,1,#,#,2,#,6,#,#"
输出: true
示例 2:
输入: "1,#"
输出: false
示例 3:
输入: "9,#,#,1"
输出: false
分析:
func isValidSerialization(preorder string) bool {
slot := 1
s := strings.Split(preorder, ",")
for i := 0; i < len(s); i++ {
slot--
if slot < 0 {
return false
}
if s[i] != "#" {
slot += 2
}
}
return slot == 0
}
总结:
勤思考。
结语
不管怎么样好好加油。