题解 | #序列化二叉树#
序列化二叉树
https://www.nowcoder.com/practice/cf7e25aa97c04cc1a68c8f040e71fb84
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None from queue import deque class Solution: def Serialize(self, root): if not root: return serialized = [] nodes = deque() nodes.append(root) while nodes: node = nodes.popleft() if node: serialized.append(node.val) nodes.append(node.left) nodes.append(node.right) else: serialized.append(None) return serialized def Deserialize(self, s): if not s: return root = TreeNode(s[0]) nodes = deque() nodes.append(root) i = 1 while nodes: node = nodes.popleft() if i < len(s) and s[i]: node.left = TreeNode(s[i]) nodes.append(node.left) i += 1 if i < len(s) and s[i]: node.right = TreeNode(s[i]) nodes.append(node.right) i += 1 return root