zoukankan      html  css  js  c++  java
  • LeetCode331:验证二叉树的前序序列化(递归)

     

      解题思路:把所有元素存成数组,设置一个全局下标next,表示当前节点如果要继续遍历应当从数组的哪个位置开始,然后从下标 0 开始DFS。如果DFS返回真并且next下标等于数组的长度,说明元素已经全部访问了,并且可以构成一棵二叉树;否则不可以构成。

    class Solution:
        def dfs(self,s,i):
            if i >= len(s):
                return False
    
            self.nxt += 1
            if s[i]=='#':
                return True
            if self.dfs(s,self.nxt):
                if self.dfs(s,self.nxt):
                    return True
            return False
        def isValidSerialization(self, preorder):
            s = preorder.split(',')
            self.nxt = 0
            flag =self.dfs(s,0)
            return flag and self.nxt==len(s)
    s = Solution().isValidSerialization( "9,3,4,#,#,1,#,#,2,#,6,#")
    print(s)
  • 相关阅读:
    java代码块执行顺序
    Oracle-SQL高级查询
    java单例模式
    Oracle序列和伪表
    Oracle函数
    Oracle存储过程
    Oracle触发器
    Oracle分析函数
    Oracle分页查询
    Oracle联合查询
  • 原文地址:https://www.cnblogs.com/ISGuXing/p/14523415.html
Copyright © 2011-2022 走看看