leetcode331验证二叉树的前序序列化

leetcode 331 Verify Preorder Serialization of a Binary Tree

Posted by BY on July 30, 2020

前言

持续更新了

正文

问题来源

本问题来自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
}

总结:

勤思考。

结语

不管怎么样好好加油。