調用 CreateBiTree 輸入字符后按 Enter,程序無響應(卡死)。
scanf_s("%c", &ch) 讀取單字符,但不跳過空白字符(包括換行符 \n)。\n,直接讀取到 \n 作為節點數據,導致邏輯混亂或無限遞歸。scanf_s(" %c", &ch, 1); // %c 前加空格,自動跳過 \n、空格、制表符
scanf_s("%c", &ch, 1);
getchar(); // 吞掉緩衝區殘留的 \n
char line[100];
fgets(line, sizeof(line), stdin);
sscanf(line, "%c", &ch);
確保 ch == '#' 時返回 NULL,且分配內存失敗時 exit(0) 或返回錯誤碼。