Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. # Definition for a binary tree node.
  2. class TreeNode(object):
  3. def __init__(self, x):
  4. self.val = x
  5. self.left = None
  6. self.right = None
  7.  
  8.  
  9. class Codec:
  10.  
  11. def do_serialize(self, root):
  12. """Recursively traverse Tree and creates list with None for empty leafs
  13. :type root: TreeNode
  14. :rtype: str
  15. """
  16. if root is not None:
  17. return [root.val] + self.do_serialize(root.left) + self.do_serialize(root.right)
  18. else:
  19. return [None]
  20.  
  21. def serialize(self, root):
  22. """Encodes a tree to a single string.
  23.  
  24. :type root: TreeNode
  25. :rtype: str
  26. """
  27. return self.do_serialize(root)
  28.  
  29. def do_deserialize(self, data):
  30. """ Recursively re-create Tree
  31. :type data: Iterator object for list
  32. :rtype: TreeNode
  33. """
  34. val = next(data)
  35. if val is None:
  36. return None
  37.  
  38. root = TreeNode(val)
  39. root.left = self.do_deserialize(data)
  40. root.right = self.do_deserialize(data)
  41. return root
  42.  
  43. def deserialize(self, data):
  44. """Decodes your encoded data to tree.
  45. :type data: str
  46. :rtype: TreeNode
  47. """
  48. return self.do_deserialize(iter(data))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement