美文网首页
2021.3.12每日一题

2021.3.12每日一题

作者: Yaan9 | 来源:发表于2021-03-12 09:09 被阅读0次

331. 验证二叉树的前序序列化

序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。
例如,上面的二叉树可以被序列化为字符串 "9,3,4,#,#,1,#,#,2,#,6,#,#",其中 # 代表一个空节点。
给定一串以逗号分隔的序列,验证它是否是正确的二叉树的前序序列化。编写一个在不重构树的条件下的可行算法。
每个以逗号分隔的字符或为一个整数或为一个表示 null 指针的 '#' 。
你可以认为输入格式总是有效的,例如它永远不会包含两个连续的逗号,比如 "1,,3" 。
示例 1:

输入: "9,3,4,#,#,1,#,#,2,#,6,#,#"
输出: true

示例 2:

输入: "1,#"
输出: false

示例 3:

输入: "9,#,#,1"
输出: false
    public boolean isValidSerialization(String preorder) {
        int n = preorder.length();
        int i = 0;
        int slots = 1;
        while (i < n) {
            if (slots == 0) {
                return false;
            }
            if (preorder.charAt(i) == ',') {
                i++;
            } else if (preorder.charAt(i) == '#') {
                slots--;
                i++;
            } else {
                // 读一个数字
                while (i < n && preorder.charAt(i) != ',') {
                    i++;
                }
                slots++; // slots = slots - 1 + 2
            }
        }
        return slots == 0;
    }

相关文章

  • 2021.3.12每日一题

    331. 验证二叉树的前序序列化[https://leetcode-cn.com/problems/verify-...

  • Day 4 Project 我的微信好友

    附:每日一题

  • 74.我的婴语就是赞美春天

    创作于2021.3.12秦岭树

  • 2021.3.12

    落地真经严格就是爱,放纵既是害 目标确认 目标:油卡目标:11完成✅3张 产值目标153000,台次目标100台。...

  • 2021.3.12

    忍着姨妈痛做了好多工作,发现,有些时候无法体谅身体不适的自己,依然可以正常行动。过得舒服当然好,但有时试探下自己极...

  • 2021.3.12

    今天小北店长教我们学跳舞,辛苦了,好在我们都学会啦,中午和一大帮小伙伴一起吃了日料还是很开心的哟。下午去加资源还算...

  • 2021.3.12

    有一段时间没写简书了,没有输出,输入仿佛也变得更加低质量。每天的生活总是那么几个App,从前看不上的抖音一刷起来也...

  • 2021.3.12

    新歌酝酿中 想写古风的 翻了翻之前写的断断续续的,零零碎碎的一些句子 想写一个关于春天 关于等待 关于执念的歌 大...

  • 2021.3.12

    想开始写碎碎念,开始归类自己身边的形形色色,和杂七杂八。 也终于知道只有这个小树洞才是我自己独有的小天地了。 嘻嘻...

  • 2021.3.12

    偷了这么久的懒,今天开始回归写作,继续日更。 现在是晚上11:08,离今天结束还有几十分钟了。回看这一天,过得还是...

网友评论

      本文标题:2021.3.12每日一题

      本文链接:https://www.haomeiwen.com/subject/cuiaqltx.html