题解 | #序列化二叉树#

序列化二叉树

http://www.nowcoder.com/practice/cf7e25aa97c04cc1a68c8f040e71fb84

思路:

1、序列化当前节点,序列化左、右子树,返回序列化表示

2、基于序列化表示,找出节点值、节点左子树、右子树的序列化表示形式

3、递归建立当前节点,左子树、右子树,然后拼接后返回当前节点

class Solution:
    def Serialize(self, root):
        # write code here
        if not root:
            return "{}"
        
        left = self.Serialize(root.left)
        right = self.Serialize(root.right)
        val = root.val
        
        return str({"v":val,"l":left,"r":right})
        
    def Deserialize(self, s):
        if s == "{}":
            return
                   
        dic = eval(s)
        val = dic['v']
        left_s = dic['l']
        right_s = dic['r']
        
        left = self.Deserialize(left_s)
        right = self.Deserialize(right_s)
        root = TreeNode(val)
        
        root.left = left 
        root.right = right
        
        return root
全部评论

相关推荐

迟缓的斜杠青年巴比Q了:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
明天不下雨了_人机版:让我们大声的说出来:以前的未来就是现在
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务