【二叉树】二叉搜索树的最小值

解题思路:将二叉搜索树转换为升序数组,找出数组中差值最小两个数

void traversal(struct TreeNode* node, int* arr, int* size) {
    if(!node)
        return;
    traversal(node->left, arr, size);
    arr[(*size)++] = node->val;
    traversal(node->right, arr, size);
}

int getMinimumDifference(struct TreeNode* root){
    int arr[10240] = { 0 };
    int arrSize = 0;
    traversal(root, arr, &arrSize);
    int i;
    int result = INT_MAX;
    for(i = 1; i < arrSize; i++) {
        result = result < (arr[i]-arr[i-1]) ? result : (arr[i]-arr[i-1]);
    }
    return result;
}