zoukankan      html  css  js  c++  java
  • 剑指Offer 37 序列化二叉树

    序列化二叉树

    请实现两个函数,分别用来序列化和反序列化二叉树

     1 class Solution:
     2     def __init_(self):
     3         self.SerializeStr = ''
     4         
     5     def Serialize(self, root):
     6         if root == None:
     7             return '#'
     8         return str(root.val) + ' ' + self.Serialize(root.left) + ' ' +self.Serialize(root.right)
     9         # write code here
    10     def Deserialize(self, s):
    11         self.SerializeStr = s
    12         return self.DeserializeStr()
    13         
    14     def DeserializeStr(self):
    15         if len(self.SerializeStr) == 0:
    16             return None
    17         idx = self.SerializeStr.find(' ')
    18         node = self.SerializeStr if idx == -1 else self.SerializeStr[:idx]
    19         self.SerializeStr = '' if idx == -1 else self.SerializeStr[idx+1:]
    20         if node == '#':
    21             return None
    22         val = int(node)
    23         t = TreeNode(val)
    24         t.left = self.DeserializeStr()
    25         t.right = self.DeserializeStr()
    26         return t
    27         # write code here
  • 相关阅读:
    Linux零拷贝技术 直接 io
    纯Python模式
    c 越界 数组越界
    哈希 二叉树
    Cache busting
    sub esp
    lisp 代码即数据
    hexdump
    nmap
    对象 闭包
  • 原文地址:https://www.cnblogs.com/asenyang/p/11020726.html
Copyright © 2011-2022 走看看