zoukankan      html  css  js  c++  java
  • 序列化二叉树

    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Codec:
    
        def serialize(self, root):
            """Encodes a tree to a single string.
            
            :type root: TreeNode
            :rtype: str
            """
            vals = []
            def encode(root):
                if not root:
                    vals.append('null')
                    return
                    
                vals.append(str(root.val))
                encode(root.left)
                encode(root.right)
            
            encode(root)
            return '[' + ','.join(vals) + ']'
            
    
        def deserialize(self, data):
            """Decodes your encoded data to tree.
            
            :type data: str
            :rtype: TreeNode
            """
            vals = iter(data[1:-1].split(','))
            def decode():
                val = next(vals)
                if val == 'null':
                    return
                
                node = TreeNode(val)
                node.left = decode()
                node.right = decode()
                return node
            
            return decode()
    
    
    
  • 相关阅读:
    Java 高级文件处理
    drf10
    drf9
    drf8
    drf7
    drf6
    drf5
    drf4
    drf3
    drf2
  • 原文地址:https://www.cnblogs.com/KbMan/p/14498908.html
Copyright © 2011-2022 走看看