题解 Python3 | #序列化二叉树#
序列化二叉树
https://www.nowcoder.com/practice/cf7e25aa97c04cc1a68c8f040e71fb84
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None SPLIT_CHAR = "_" EMPTY_CHAR = "#" class Solution: def __Encode__(self, root: TreeNode, data: list): if not root: data.append(EMPTY_CHAR + SPLIT_CHAR) return data.append(str(root.val) + SPLIT_CHAR) self.__Encode__(root.left , data) self.__Encode__(root.right, data) def __Decode__(self, data: list): if not data: return val = data.pop(0) if val == EMPTY_CHAR: return root = TreeNode(int(val)) root.left = self.__Decode__(data) root.right = self.__Decode__(data) return root def Serialize(self, root) -> str: # write code here data: list = [] self.__Encode__(root, data) return "".join(data) def Deserialize(self, s): # write code here datas = s.split(SPLIT_CHAR) return self.__Decode__(datas)