示例#1
0
 TreeNode* constructBST(vector<int>& num, int l, int r) {
   TreeNode* node = 0;
   int m = 0;
   if (l <= r) {
     m = (l + r) >> 1;
     node = new TreeNode(num[m]);
     node->left = constructBST(num, l, m - 1);
     node->right = constructBST(num, m + 1, r);
   }
/*
 * test case
 * */
TEST(sortedSLL2BBST_Test, Positive01){
    Solution s;

    ListNode *head = constructSLL();

    TreeNode *result = s.sortedSLL2BBST(head);
    TreeNode *expected = constructBST();

    EXPECT_TRUE(assertBST(expected, result));

    deleteBST(expected);
    deleteBST(result);
    deleteSLL(head);
}
int main()
{
	Node* root = NULL;
	constructBST(root, 3);
	constructBST(root, 2);
	constructBST(root, 1);
	constructBST(root, 4);
	constructBST(root, 0);

	printf("in order traverse the BST:\n");
	inOrderTraverse(root);
	printf("------------------\n");


	int maxDep = maxDepth(root);
	printf("maxDep : %d\n", maxDep);
	printf("------------------\n");

	getLongest(root);
	printf("longest : %d\n", longest);
	
	return 0;
}
TEST(sortedArray2BBST_Test, Positive01){
    Solution s;

    int arr[] = {1, 2, 3, 4, 5, 6, 7};
    vector<int> num(arr, arr + sizeof(arr) / sizeof(int));

    TreeNode *result = s.sortedArray2BBST(num);
    TreeNode *expected = constructBST();

    EXPECT_TRUE(assertBST(expected, result));

    deleteBST(expected);
    deleteBST(result);
    num.clear();
}