Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
8
Упрощение функции сравнения двух бинарных деревьев
Условие задачи
Представлена реализация функции isSameTree, в которой применяются вложенные условные операторы. Необходимо сделать код более лаконичным и понятным, убрав лишние вложения, но при этом сохранить корректную рекурсивную проверку идентичности двух бинарных деревьев.
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode() : val(0), left(nullptr), right(nullptr) {}
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
TreeNode(int x, TreeNode* left, TreeNode* right) : val(x), left(left), right(right) {}
};
bool isSameTree(TreeNode* node1, TreeNode* node2) {
if (!node1 && !node2)
return true;
if (node1 && node2) {
if (node1->val == node2->val) {
if (isSameTree(node1->left, node2->left)) {
return isSameTree(node1->right, node2->right);
}
}
}
return false;
}