331. Verify Preorder Serialization of a Binary Tree
题目描述
利用前序遍历序列化二叉树时,遇到非空结点时,记录结点的值;如果是空节点,用#记录。 给定一个逗号分隔的字符串,判断它是否是二叉树的前序遍历序列化。不需重建二叉树
例子 Example 1:
Input: "9,3,4,#,#,1,#,#,2,#,6,#,#" Output: true
Example 2:
Input: "1,#" Output: false
Example 3:
Input: "9,#,#,1" Output: false
思想 (法1 - 出度入度之差) 入度等于出度~ 根节点:0个入度,2个出度;其他非空结点:1个入度,2个出度;空节点:1个入度,0个出度。 应保证出度-入度始终≥0,且最终差值为0。
遍历到每个结点时,因为入度为1,所以diff -= 1(考虑头结点,diff初始化为