Balanced Tree
Coddyの「二分木 - データ構造シリーズ #3」コースのレッスン 11/13。
次のチャレンジでは、あなたが構築したBinaryTreeを使用します。提供された実装を使用して、それらを解決してください。
チャレンジ
簡単BinaryTree を表す文字列(再帰的な [value, leftSubtree, rightSubtree] 形式、空の場合は null)を受け取り、その木が平衡(バランス)している場合は true を、そうでない場合は false を返す isBalanced という名前の関数を作成してください。すべてのノードにおいて、その2つの部分木の高さの差が最大で1である場合、その木は平衡であるとみなされます。
自分で試してみよう
#include <stdio.h>
#include <string.h>
#include "solution.h"
int main() {
char s[4096];
if (!fgets(s, sizeof(s), stdin)) s[0] = '\0';
s[strcspn(s, "\r\n")] = '\0';
printf("%s\n", isBalanced(s) ? "true" : "false");
return 0;
}