if cur.right: q.append(cur.right) idx += 1 return root def printNode(tn, indent): sb = "" for i in range(indent): sb += "\t" sb += str(tn.val) print(sb) def printTree(root, indent): if not root: return printTree(root.right, indent + 1) printNode(root, indent) printTree(root.left, indent + 1) root = createTree("1, 2, 3, #, #, 4, 5") data = [0, 0, 0, 0, None, None, 1, None, None, None, 2] # data = [None] sol = Codec() seri = sol.serialize(root) print(seri) deseri = sol.deserialize(data) print(printTree(deseri, 0))
from solution import TreeNode, Codec def traverse(node, nodes): nodes.append(node.val if node else None) if node: traverse(node.left, nodes) traverse(node.right, nodes) codec = Codec() # test 1 root = TreeNode(1) root.left = TreeNode(2) right = TreeNode(3) right.left, right.right = TreeNode(4), TreeNode(5) root.right = right deserialized = codec.deserialize(codec.serialize(root)) original_nodes = [] deser_nodes = [] traverse(root, original_nodes) traverse(deserialized, deser_nodes) assert original_nodes == deser_nodes
if idx == len(data): break cur.right = createNode(data[idx]) if cur.right: q.append(cur.right) idx += 1 return root def printNode(tn, indent): sb = "" for i in range(indent): sb += "\t" sb += str(tn.val) print(sb) def printTree(root, indent): if not root: return printTree(root.right, indent + 1) printNode(root, indent) printTree(root.left, indent + 1) root = createTree("1, 2, 3, #, #, 4, 5") data = [0,0,0,0,None,None,1,None,None,None,2] # data = [None] sol = Codec() seri = sol.serialize(root) print(seri) deseri = sol.deserialize(data) print(printTree(deseri, 0))
def _test_codec(root): cc = Codec() assert tree_eq(cc.deserialize(cc.serialize(root)), root)
from solution import Codec new_codec = Codec() def test_empty(): """ test if given string are empty """ assert new_codec.encode('') is False def test_string(): """ test short url """ site = 'google.com' assert site == new_codec.decode(new_codec.encode(site)) def test_long_site(): site = 'https://www.youtube.com/watch?v=7oQ-Usd7Tes' assert site == new_codec.decode(new_codec.encode(site))