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)
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]])
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')
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]")))
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)
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])
def test_testCase(self): for Sol in [Solution1()]: func = Sol.sumRootToLeaf self.assertEqual(func(deserialize('[1,0,1,0,1,0,1]')), 22)
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"]))
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)
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)
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)
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]")))
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)
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)
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]])