题解 | #序列化二叉树#

序列化二叉树

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
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-23 18:30
美团优选内容调整,屁股都没离开座椅呢,多多买菜来挖了
熬夜脱发码农:哈,拼多多真挖人是吧
投递美团等公司8个岗位 >
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
06-25 21:00
门头沟学院 Java
多拆解背记一下当前的高频场景面试题,结合自己的项目经历去作答,面试通过率原来真的不会低!
牛客965593684号:小公司不就是这样的吗,面试要么是点击就送,要么就是往死里拷打,没有一个统一的标准。这个不能代表所有公司
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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