class Codec:
def serialize(self, root):
"""
Encodes a tree to a single string.
"""
def postorder(root):
return postorder(root.left) + postorder(root.right) + [root.val] if root else []
return ' '.join(map(str, postorder(root)))
def deserialize(self, data):
"""
Decodes your encoded data to tree.
"""
def helper(lower = float('-inf'), upper = float('inf')):
if not data or data[-1] < lower or data[-1] > upper:
return None
val = data.pop()
root = TreeNode(val)
root.right = helper(val, upper)
root.left = helper(lower, val)
return root
data = [int(x) for x in data.split(' ') if x]
return helper()
序列化反序列化
最新推荐文章于 2024-02-18 20:53:37 发布
该博客详细介绍了如何使用Python实现二叉树的序列化和反序列化。`classCodec`类中,`serialize`方法通过后序遍历将二叉树编码为一个单一字符串,而`deserialize`方法则根据编码的数据重建二叉树。这种方法有效地将树结构转换为可存储或传输的格式,并能准确地还原原始树结构。
1876

被折叠的 条评论
为什么被折叠?



