Verify Preorder Serialization of a Binary Tree
来源:互联网 发布:希拉里 国务卿知乎 编辑:程序博客网 时间:2024/04/27 02:18
One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, we record the node's value. If it is a null node, we record using a sentinel value such as#
.
_9_ / \ 3 2 / \ / \ 4 1 # 6/ \ / \ / \# # # # # #
For example, the above binary tree can be serialized to the string "9,3,4,#,#,1,#,#,2,#,6,#,#"
, where#
represents a null node.
Given a string of comma separated values, verify whether it is a correct preorder traversal serialization of a binary tree. Find an algorithm without reconstructing the tree.
Each comma separated value in the string must be either an integer or a character'#'
representing null
pointer.
You may assume that the input format is always valid, for example it could never contain two consecutive commas such as"1,,3"
.
Example 1:"9,3,4,#,#,1,#,#,2,#,6,#,#"
Return true
Example 2:"1,#"
Return false
Example 3:"9,#,#,1"
Return false
这个题想到用栈来做就问题不大了,然后就是想清楚程序结束的条件。
public class Solution { public boolean isValidSerialization(String preorder) { Stack<String> stack=new Stack<String>(); String[] strs =preorder.split(","); int i=0; while(i<strs.length){ stack.push(strs[i]); while(stack.peek().equals("#")){ stack.pop(); if(stack.isEmpty()){ return i==strs.length-1; } String pop=stack.pop(); if(pop.equals("#")){ stack.pop(); stack.push("#"); }else{ stack.push(pop); stack.push("#"); break; } } i++; } return false; }}
- Verify Preorder Serialization of a Binary Tree
- Verify Preorder Serialization of a Binary Tree
- Verify Preorder Serialization of a Binary Tree
- Verify Preorder Serialization of a Binary Tree
- Verify Preorder Serialization of a Binary Tree
- Verify Preorder Serialization of a Binary Tree
- Verify Preorder Serialization of a Binary Tree
- Verify Preorder Serialization of a Binary Tree
- Verify Preorder Serialization of a Binary Tree
- Verify Preorder Serialization of a Binary Tree
- leetcode Verify Preorder Serialization of a Binary Tree
- 331. Verify Preorder Serialization of a Binary Tree
- Leetcode: Verify Preorder Serialization of a Binary Tree
- LeetCode Verify Preorder Serialization of a Binary Tree
- leetcode 331. Verify Preorder Serialization of a Binary Tree
- [LeetCode]331. Verify Preorder Serialization of a Binary Tree
- 331. Verify Preorder Serialization of a Binary Tree
- [leetcode] Verify Preorder Serialization of a Binary Tree
- GetWindowText()有关问题解答——VS2012
- mysqldump命令的用法
- EventBus 3.0的用法 Demo
- 项目实战-ProgressDialog
- Shiro用ehcache缓存session,关于JSESSIONID失效报错问题
- Verify Preorder Serialization of a Binary Tree
- 9*9乘法表
- 设计单片机日志系统
- Android 图片加载 Glide使用
- Linux上安装MySQL时出现不兼容的解决办法
- sqlserver 转为varchar类型
- 大学毕业设计(web) 软件工程 / IT /网工孩子 做毕设
- Redis,SQLite,MySQL 与 Python
- 个人觉得比较好的网站、博客、文章