zoukankan      html  css  js  c++  java
  • leetcode--Verify Preorder Serialization of a Binary Tree

    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

    Credits:
    Special thanks to @dietpepsi for adding this problem and creating all test cases.

    Subscribe to see which companies asked this question

     
     
     
    利用栈数字入栈,#出栈
    public class Solution {
        public boolean isValidSerialization(String preorder) {
            Stack<String> stack=new Stack<String>();
            String []num=preorder.split(",");
            int i=0;
            if(num[0].equals("#")&&num.length>1)return false;
            for(;i<num.length;i++){
                if(!num[i].equals("#")){
                    stack.push(num[i]);
                }else if(stack.size()>0&&num[i].equals("#")){
                    stack.pop();
                }
                else if(stack.size()==0&&num[num.length-1].equals("#")&&i==num.length-1){
                    return true;
                }else{
                return false;
                }
            }
            return false;
        }
    }
  • 相关阅读:
    Xampp 环境问题集合
    linux VI模式下批量修改文件内容
    shell 获取文件名
    shell 遍历所有文件包括子目录
    jmeter java 请求 payload
    [转]postman 官方文档解说
    承上启下——牛腩新闻发布系统总结
    ASP.NET——实现两个下拉框动态联动
    ASP.NET——真假分页
    HTML快速入门
  • 原文地址:https://www.cnblogs.com/pkuYang/p/5176998.html
Copyright © 2011-2022 走看看