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代码实现二叉树的序列化和反序列化的主要内容,如果未能解决你的问题,请参考以下文章