示例#1
0
 def test_testCase(self):
     for Sol in [Solution1(), Solution2(), Solution3()]:
         func = Sol.rangeSumBST
         root = deserialize("[10,5,15,3,7,null,18]")
         self.assertEqual(func(root, 7, 15), 32)
         root = deserialize("[10,5,15,3,7,13,18,1,null,6]")
         self.assertEqual(func(root, 6, 10), 23)
示例#2
0
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.recoverTree
         self.assertEqual(serialize(func(deserialize("[1,3,null,null,2]"))),
                          serialize(deserialize("[3,1,null,null,2]")))
         self.assertEqual(
             serialize(func(deserialize("[3,1,4,null,null,2]"))),
             serialize(deserialize("[2,1,4,null,null,3]")))
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.levelOrderBottom
         self.assertEqual(func(deserialize("[null]")), [])
         self.assertEqual(func(deserialize("[3,9,20,null,null,15,7]")),
                          [[15, 7], [9, 20], [3]])
         self.assertEqual(func(deserialize("[1,2,3,4,null,null,5]")),
                          [[4, 5], [2, 3], [1]])
示例#4
0
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.smallestFromLeaf
         self.assertEqual(func(deserialize("[3,9,20,null,null,15,7]")),
                          'hud')
         self.assertEqual(func(deserialize("[2,2,1,null,1,0,null,0]")),
                          'abc')
         self.assertEqual(func(deserialize("[25,1,3,1,3,0,2]")), 'adz')
         self.assertEqual(func(deserialize("[0,1,2,3,4,3,4]")), 'dba')
示例#5
0
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.insertIntoBST
         root = deserialize("[4,2,7,1,3]")
         self.assertEqual(serialize(func(root, 5)),
                          serialize(deserialize("[4,2,7,1,3,5]")))
         root = deserialize("[40,20,60,10,30,50,70]")
         self.assertEqual(
             serialize(func(root, 25)),
             serialize(deserialize("[40,20,60,10,30,50,70,null,null,25]")))
示例#6
0
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.deepestLeavesSum
         self.assertEqual(
             func(
                 deserialize("[1,2,3,4,5,null,6,7,null,null,null,null,8]")),
             15)
示例#7
0
 def test_testCase(self):
     for Sol in [Solution1(), Solution2()]:
         func = Sol.getAllElements
         self.assertEqual(
             func(deserialize("[2,1,4]"), deserialize("[1,0,3]")),
             [0, 1, 1, 2, 3, 4])
         self.assertEqual(
             func(deserialize("[0,-10,10]"), deserialize("[5,1,7,0,2]")),
             [-10, 0, 0, 1, 2, 5, 7, 10])
         self.assertEqual(
             func(deserialize("[null]"), deserialize("[5,1,7,0,2]")),
             [0, 1, 2, 5, 7])
         self.assertEqual(
             func(deserialize("[0,-10,10]"), deserialize("[null]")),
             [-10, 0, 10])
         self.assertEqual(
             func(deserialize("[1,null,8]"), deserialize("[8,1]")),
             [1, 1, 8, 8])
示例#8
0
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.sumRootToLeaf
         self.assertEqual(func(deserialize('[1,0,1,0,1,0,1]')), 22)
示例#9
0
 def test_testCase(self):
     for Sol in [Solution1(), Solution2()]:
         func = Sol.binaryTreePaths
         self.assertEqual(set(func(deserialize("[1,2,3,null,5]"))),
                          set(["1->3", "1->2->5"]))
示例#10
0
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.pathSum
         self.assertEqual(func(deserialize("[10,5,-3,3,2,null,11,3,-2,null,1]"), 8), 3)
         self.assertEqual(func(deserialize("[1,null,2,null,3,null,4,null,5]"), 3), 2)
示例#11
0
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.sumNumbers
         self.assertEqual(func(deserialize("[1,2,3]")), 25)
         self.assertEqual(func(deserialize("[4,9,0,5,1]")), 1026)
 def test_testCase(self):
     for Sol in [Solution1(), Solution2(), Solution3()]:
         func = Sol.invertTree
         self.assertEqual(serialize(func(deserialize('[4,2,7,1,3,6,9]'))),
                          serialize(deserialize('[4,7,2,9,6,3,1]')))
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.getMinimumDifference
         self.assertEqual(func(deserialize("[1,null,3,2]")), 1)
         self.assertEqual(func(deserialize("[543,384,652,null,445,null,699]")), 47)
示例#14
0
 def test_testCase(self):
     for Sol in [Solution1(),Solution2()]:
         func = Sol.subtreeWithAllDeepest
         self.assertEqual(serialize(func(deserialize("[3,5,1,6,2,0,8,1,null,7,4]"))), serialize(deserialize('[5,6,2,1,null,7,4]')))
    def test_testCase(self):
        for Sol in [Solution1(),Solution2(),Solution3()]:
            func = Sol.kthSmallest

            self.assertEqual(func(deserialize("[3,1,4,null,2]"),1), 1)
            self.assertEqual(func(deserialize("[5,3,6,2,4,null,null,1]"),3), 3)
示例#16
0
 def test_testCase(self):
     for Sol in [Solution1(), Solution2()]:
         func = Sol.countNodes
         self.assertEqual(func(deserialize("[1,2,3,4,5,6]")), 6)
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.flipEquiv
         root1 = deserialize("[1,2,3,4,5,6,null,null,null,7,8]")
         root2 = deserialize("[1,3,2,null,6,4,5,null,null,null,null,8,7]")
         self.assertEqual(func(root1, root2), True)
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.constructFromPrePost
         self.assertEqual(
             serialize(func([1, 2, 4, 5, 3, 6, 7], [4, 5, 2, 6, 7, 3, 1])),
             serialize(deserialize("[1,2,3,4,5,6,7]")))
示例#19
0
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.sumOfLeftLeaves
         self.assertEqual(func(deserialize("[3,9,20,null,null,15,7]")), 24)
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.widthOfBinaryTree
         self.assertEqual(func(deserialize("[1,3,2,5,3,null,9]")), 4)
示例#21
0
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.zigzagLevelOrder
         self.assertEqual(func(deserialize("[3,9,20,null,null,15,7]")),
                          [[3], [20, 9], [15, 7]])
 def test_testCase(self):
     for Sol in [Solution1(), Solution2()]:
         func = Sol.diameterOfBinaryTree
         self.assertEqual(func(deserialize('[null]')), 0)
         self.assertEqual(func(deserialize('[1,2,3,4,5]')), 3)
         self.assertEqual(func(deserialize('[1,1,1,2,3,4,null,null,5]')), 5)
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.searchBST
         root = deserialize("[4,2,7,1,3]")
         self.assertEqual(serialize(func(root, 2)),
                          serialize(deserialize("[2,1,3]")))
 def test_testCase(self):
     for Sol in [Solution1(), Solution2(), Solution3()]:
         func = Sol.isCousins
         self.assertEqual(func(deserialize("[1,2,3,4]"), 4, 3), False)
         self.assertEqual(func(deserialize("[1,2,3,null,4,null,5]"), 5, 4), True)
         self.assertEqual(func(deserialize("[1,2,3,null,4]"), 2, 3), False)
示例#25
0
 def test_testCase(self):
     for Sol in [Solution1()]:
         func = Sol.pathSum
         self.assertEqual(
             func(deserialize("[5,4,8,11,null,13,4,7,2,null,null,5,1]"),
                  22), [[5, 4, 11, 2], [5, 8, 4, 5]])