示例#1
0
    def test_preorder_traversal(self):
        self.assertEqual([1, 2, 3],
                         Solution().preorderTraversal(
                             TreeNode(1, None, TreeNode(2, TreeNode(3),
                                                        None))))

        self.assertEqual([], Solution().preorderTraversal(None))

        self.assertEqual([1], Solution().preorderTraversal(TreeNode(1)))
示例#2
0
    def test_is_same_tree(self):
        # self.assertEqual(True, Solution().isSameTree(
        #     TreeNode(1, TreeNode(2), TreeNode(3)),
        #     TreeNode(1, TreeNode(2), TreeNode(3))
        # ))

        self.assertEqual(False, Solution().isSameTree(
            TreeNode(1, TreeNode(2)),
            TreeNode(1, None, TreeNode(2))
        ))
示例#3
0
def main():

    # Build test tree
    treeNodeHead = testTree = TreeNode(3)
    testTree.left = TreeNode(9)
    testTree.right = TreeNode(20)
    testTree = testTree.right
    testTree.left = TreeNode(15)
    testTree.right = TreeNode(7)
    placeholder = testTree
    testTree = testTree.left
    testTree.left = TreeNode(77)
    testTree.right = TreeNode(88)
    testTree = placeholder
    testTree = testTree.right
    testTree.left = TreeNode(33)
    testTree.right = TreeNode(44)

    # Point to the head before passing to the Solution class
    testTree = treeNodeHead

    # Instantiate Solution class
    s = Solution()

    # Run the solution
    answer = s.maxDepth(testTree)
    print("Max depth of the binary tree: " + str(answer))
示例#4
0
def main():
    
    # Example 1
    # Create first list node and set the head pointer there
    treeNodeHead = testTree = TreeNode(4)
    testTree.left = TreeNode(2)
    testTree.right = TreeNode(7)
    testTree = testTree.left
    testTree.left = TreeNode(1)
    testTree.right = TreeNode(3)
    testTree = treeNodeHead
    testTree = testTree.right
    testTree.left = TreeNode(6)
    testTree.right = TreeNode(9)
    testTree = treeNodeHead

    # Example 2
    #treeNodeHead = testTree = TreeNode(2)
    #testTree.left = TreeNode(1)
    #testTree.right = TreeNode(3)

    # Example 3
    #treeNodeHead = testTree = TreeNode()

    # Instantiate Solution class
    s = Solution()

    # Run the solution
    answer = s.invertTree(testTree)

    allVals = []
    collectValuesInTree(answer, allVals)

    print("Print all values of inverted tree: ")
    print(allVals)
示例#5
0
 def test_max_depth(self):
     self.assertEqual(3, Solution().maxDepth(
         TreeNode(3,
                  TreeNode(9),
                  TreeNode(20,
                           TreeNode(15),
                           TreeNode(7)
                           )
                  )
     ))
     self.assertEqual(2, Solution().maxDepth(
         TreeNode(1,
                  None,
                  TreeNode(2)
                  )))
     self.assertEqual(1, Solution().maxDepth(
         TreeNode(3)
     ))
     self.assertEqual(0, Solution().maxDepth(
         None
     ))
示例#6
0
def main():
    
    # Example 1
    # Create first list node and set the head pointer there
    treeNodeHead = testTree = TreeNode(2)
    testTree.left = TreeNode(1)
    testTree.right = TreeNode(3)

    # Example 2
    treeNodeHead = testTree = TreeNode(5)
    testTree.left = TreeNode(1)
    testTree.right = TreeNode(4)
    testTree = testTree.right
    testTree.left = TreeNode(3)
    testTree.right = TreeNode(6)
    testTree = treeNodeHead
    
    # Instantiate Solution class
    s = Solution()

    # Run the solution
    answer = s.isValidBST(testTree)
    print("This is a valid BST: ")
    print(answer)
示例#7
0
    def test_has_path_sum(self):
        self.assertEqual(True, Solution().hasPathSum(
            TreeNode(5,
                     TreeNode(4,
                              TreeNode(11,
                                       TreeNode(7),
                                       TreeNode(2)
                                       )
                              ),
                     TreeNode(8,
                              TreeNode(13),
                              TreeNode(4,
                                       TreeNode(1))
                              )
                     ),
            22
        ))

        self.assertEqual(False,Solution().hasPathSum(
            TreeNode(1,
                     TreeNode(2)
                     ),
            1
        ))
示例#8
0
    def test_min_depth(self):
        self.assertEqual(
            2,
            Solution().minDepth(
                TreeNode(3, TreeNode(9), TreeNode(20, TreeNode(15),
                                                  TreeNode(7)))))

        self.assertEqual(
            5,
            Solution().minDepth(
                TreeNode(
                    2, None,
                    TreeNode(3, None,
                             TreeNode(4, None, TreeNode(5, None,
                                                        TreeNode(6)))))))
        self.assertEqual(1, Solution().minDepth(TreeNode(2)))
示例#9
0
from Solution import BSTIterator
from Solution import TreeNode


def iterateTree(node):
    # Your BSTIterator will be called like this:
    i, v = BSTIterator(node), []
    while i.hasNext():
        v.append(i.next())
    print v


root = TreeNode(6)
iterateTree(root)

root.left = TreeNode(3)
root.right = TreeNode(7)
iterateTree(root)

root.left.left = TreeNode(2)
root.left.right = TreeNode(4)
root.right = TreeNode(8)
root.right.left = TreeNode(7)
root.right.right = TreeNode(9)
iterateTree(root)
示例#10
0
 def test_is_balanced(self):
     self.assertEqual(True, Solution().isBalanced(
         TreeNode(3,
                  TreeNode(9),
                  TreeNode(20,
                           TreeNode(15),
                           TreeNode(7)
                           )
                  )
     ))
     self.assertEqual(False, Solution().isBalanced(
         TreeNode(1,
                  TreeNode(2,
                           TreeNode(3,
                                    TreeNode(4),
                                    TreeNode(4)
                                    ),
                           TreeNode(3)
                           ),
                  TreeNode(2))
     ))
     self.assertEqual(False, Solution().isBalanced(
         TreeNode(val=1,
                  left=TreeNode(val=2,
                                left=TreeNode(val=3,
                                              left=TreeNode(val=4,
                                                            left=None,
                                                            right=None),
                                              right=None),
                                right=None),
                  right=TreeNode(val=2,
                                 left=None,
                                 right=TreeNode(val=3,
                                                left=None,
                                                right=TreeNode(val=4,
                                                               left=None,
                                                               right=None))))
     ))
示例#11
0
 def test_postorder_traversal(self):
     self.assertEqual([3, 2, 1],
                      Solution().postorderTraversal(
                          TreeNode(1, None, TreeNode(2, TreeNode(3),
                                                     None))))