
解题思路:将二叉搜索树转换为升序数组,找出数组中差值最小两个数
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;
}
