当前位置: 代码迷 >> 综合 >> 剑指 Offer 37. 序列化二叉树
  详细解决方案

剑指 Offer 37. 序列化二叉树

热度:57   发布时间:2024-02-22 16:31:47.0

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

示例:

你可以将以下二叉树:

    1
   / \
  2   3
     / \
    4   5

序列化为 "[1,2,3,null,null,4,5]"

1.所谓的序列化和反序列化只是找到一种方式来压缩和解压缩而已

class Codec:def serialize(self, root):if not root:[]res=[]def dfs(root):if not root:res.append('*')return res.append(root.val)dfs(root.left)dfs(root.right)dfs(root)return resdef deserialize(self, data):if not data:return Noneindex=0def dfs():nonlocal indexif data[index]=='*':index+=1return Noneroot=TreeNode(data[index])index+=1root.left=dfs()root.right=dfs()return rootreturn dfs()

 

  相关解决方案