题解 | #序列化二叉树#

序列化二叉树

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

全部评论

相关推荐

05-26 10:24
门头沟学院 Java
点赞 评论 收藏
分享
牛客965593684号:假的,字节hr都是不会找你内推的,直接就是同学我们约个面试?他们有权限直接捞你的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务