python代码实现二叉树的序列化和反序列化

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python代码实现二叉树的序列化和反序列化相关的知识,希望对你有一定的参考价值。

python代码实现二叉树的序列化和反序列化

 

二叉树的序列化 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字 符串,从而使得内存中建立起来的二叉树可以持久保存。

二叉树的反序列化是指:根据某种遍历顺序得到的序列化字符串结果str,重构二叉树。

 

#python代码实现二叉树的序列化和反序列化

class TreeNode:
    def __init__(self, x, left=None, right=None):
        self.val = x
        self.left = left
        self.right = right

    def __str__(self):
        res = []
        queue = [self]
        while queue:
            cur = queue.pop(0)
            res.append(str(cur.val)) if cur else res.append(\'None\')
            if cur:
                queue.extend([cur.left, cur.right])
        return \',\'.join(res)


# 递归的方法
class Codec:

    def serialize(self, root):
        """Encodes a tree to a single string.
        :type root: TreeNode
        :rtype: str
        """

        def rser(node, s=\'\'):
            if not node:
                s += \'N,

以上是关于python代码实现二叉树的序列化和反序列化的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的序列化和反序列化

二叉树的序列化和反序列化

二叉树的按行层序遍历及序列化和反序列化

Leetcode 297.二叉树的序列化和反序列化

二叉树的序列化和反序列化

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