def test_to_list_middle_leaves(self): root = TreeNode(1) root.left = TreeNode(2) root.right = TreeNode(3) root.left.right = TreeNode(4) root.right.left = TreeNode(5) self.assertListEqual(to_list(root), [1, 2, 3, None, 4, 5])
def pruneTree(self, root: TreeNode) -> TreeNode: """ prune the tree recursively! """ if root is None: return None if root.left is not None: root.left = self.pruneTree(root.left) if root.right is not None: root.right = self.pruneTree(root.right) if root.left is None and root.right is None: if root.val == 0: return None else: return root return root
def test_to_list_both_children(self): root = TreeNode(1) root.left = TreeNode(2) root.right = TreeNode(3) self.assertListEqual(to_list(root), [1, 2, 3])
def test_to_list_missing_right(self): root = TreeNode(1) root.left = TreeNode(2) self.assertListEqual(to_list(root), [1, 2])