Пример #1
0
 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])
Пример #2
0
    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
Пример #3
0
 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])
Пример #4
0
 def test_to_list_missing_right(self):
     root = TreeNode(1)
     root.left = TreeNode(2)
     self.assertListEqual(to_list(root), [1, 2])