二叉树的序列化,指的是将二叉树传换成唯一的字符串,一个结构对应序列化之后的而结果是唯一的,不能出现二叉树结构不同但是序列化之后字符串相同的情况!
应用:
判断两颗二叉树是否完全相同,如 M652
一般来说,将二叉树序列化成字符串的的形式有两种,一种是力扣官方的序列化方式,使用列表存储二叉树节点的值,这里不做讨论,只说转换成字符串的方法,也就是,当x是根节点时,转换后的字符串形如:
具体代码为:
def dfs(node) -> str:
if not node:
return ""
# 注意join里面是一个列表,记录了三块内容+两对括号,注意将node.val转换为字符类型
re = "".join([str(node.val), "(", dfs(node.left), ")(", dfs(node.right), ")"])
return re
是不是简单的一批!!