Serialize And Deserialize Binary Tree

PHOTO EMBED

Sun Mar 17 2024 20:06:40 GMT+0000 (Coordinated Universal Time)

Saved by @playadust

class Codec:
    def serialize(self, root):
        res = []

        def dfs(node):
            if not node:
                res.append("N")
                return
            res.append(str(node.val))
            dfs(node.left)
            dfs(node.right)

        dfs(root)
        return ",".join(res)

    def deserialize(self, data):
        vals = data.split(",")
        self.i = 0

        def dfs():
            if vals[self.i] == "N":
                self.i += 1
                return None
            node = TreeNode(int(vals[self.i]))
            self.i += 1
            node.left = dfs()
            node.right = dfs()
            return node

        return dfs()
content_copyCOPY

https://leetcode.com/problems/serialize-and-deserialize-binary-tree/

https://www.youtube.com/watch?v=u4JAi2JJhI8