博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode#331验证二叉树前序序列化(栈)
阅读量:3952 次
发布时间:2019-05-24

本文共 624 字,大约阅读时间需要 2 分钟。

Difficulty: 中等

序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #

_9_    /   \   3     2  / \   / \ 4   1  #  6/ \ / \   / \# # # #   # #

例如,上面的二叉树可以被序列化为字符串 "9,3,4,#,#,1,#,#,2,#,6,#,#",其中 # 代表一个空节点。

给定一串以逗号分隔的序列,验证它是否是正确的二叉树的前序序列化。编写一个在不重构树的条件下的可行算法。

每个以逗号分隔的字符或为一个整数或为一个表示 null 指针的 '#'

你可以认为输入格式总是有效的,例如它永远不会包含两个连续的逗号,比如 "1,,3"

示例 1:

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

示例 2:

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

示例 3:

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

Solution

Language: ****

class Solution {
public: bool isValidSerialization(string preorder) {
int degree=1,n=preorder.size(); for(int i=0;i

转载地址:http://luyzi.baihongyu.com/

你可能感兴趣的文章
10大玄机为你揭开炒土豆丝爽脆的秘密——尖椒土豆丝
查看>>
grep与正则表达式
查看>>
git patch 使用
查看>>
如何进行Linux Kernel 开发
查看>>
技术人攻略访谈二十九:平行世界守护者
查看>>
制作initramfs/initrd镜像
查看>>
浅析busybox查找命令和调用相应命令函数的实现流程框架
查看>>
利用linux dd和tr命令生成特定的数据
查看>>
Fundamentals of battery fuel-gauging
查看>>
armlinux内核启动--内存初始化管理
查看>>
rk3188--4.android用initrd文件系统启动流程
查看>>
rk3188--3.initramfs_data.cpio的生成及使用
查看>>
小议基于Android平台的流媒体播放器的设计 转载
查看>>
linux 2.6 输入子系统 键盘驱动的实现
查看>>
Linux Input Device
查看>>
学习ARM+Linux的很好的资料
查看>>
linux spi子系统 驱动分析续
查看>>
linux设备模型深探
查看>>
SPI设备的驱动
查看>>
Linux 2.6下SPI设备模型--------基于AT91RM9200分析
查看>>