当前位置: 移动技术网 > IT编程>脚本编程>Python > Python:序列化二叉树

Python:序列化二叉树

2018年03月12日  | 移动技术网IT编程  | 我要评论

幼儿学习机,damnhoop,化物语h

Python:序列化二叉树。

题目描述

请实现两个函数,分别用来序列化和反序列化二叉树

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
class Solution:
    def Serialize(self, root):
        # write code here
        tree, ch = [root], []
        while len(tree) > 0:
            temp = tree.pop(0)
            if temp is None:
                ch.append('#*')
            else:
                ch.append(str(temp.val) + '*')
                tree.append(temp.left)
                tree.append(temp.right)
        return ''.join(ch)

    def Deserialize(self, s):
        # write code here
        s1, i = s.split('*'), 0
        if s1[i] == '#':
            return None
        root = TreeNode(int(s1[i]))
        tree = [root]
        while len(tree) > 0:
            te = tree.pop(0)
            i += 1
            if s1[i] != '#':
                k = TreeNode(int(s1[i]))
                te.left = k
                tree.append(k)
            i += 1
            if s1[i] != '#':
                k = TreeNode(int(s1[i]))
                te.right = k
                tree.append(k)
        return root

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网