getduplicate neu

This commit is contained in:
Kristin 2025-12-10 21:09:03 +01:00
parent 799667ed1c
commit 99a974cc9b

View File

@ -71,21 +71,24 @@ unsigned int *createNumbers(unsigned int len) {
// on errors.
unsigned int getDuplicate(const unsigned int *numbers, unsigned int len) {
if (!numbers || len < 2)
return NULL; // Fehlerhaftes Array
return 0; // Sicherheit: kein Array oder zu kurz
TreeNode *root = NULL; // neuer Baum
TreeNode *root = NULL;
unsigned int duplicateValue = 0;
for (unsigned int i = 0; i < len; i++) {
int isDuplicate = 0;
// Zahl in den Baum einfügen
root = addToTree(root, &numbers[i], sizeof(unsigned int),
compareUnsignedInt, &isDuplicate);
if (isDuplicate) {
duplicateValue = numbers[i];
break;
// Duplikat erkannt
if (isDuplicate && duplicateValue == 0) {
duplicateValue = numbers[i]; // das erste Duplikat merken
}
}
clearTree(root);
return duplicateValue;
clearTree(root); // Baum freigeben
return duplicateValue; // 0, falls kein Duplikat
}