Сложность: easy
Даны корни двух бинарных деревьев p и q. Напишите функцию, чтобы проверить, одинаковы ли они. Два бинарных дерева считаются одинаковыми, если они структурно идентичны, и узлы имеют одинаковые значения.
Пример:
Input: p = [1,2,3], q = [1,2,3] Output: true 👨💻 Алгоритм:
1⃣Если оба узла — nil, возвращаем true
2⃣Если один из них — nil, или значения не совпадают, возвращаем false
3⃣Рекурсивно проверяем левое и правое поддерево
😎 Решение:
class TreeNode {
var val: Int
var left: TreeNode?
var right: TreeNode?
init(_ val: Int, _ left: TreeNode? = nil, _ right: TreeNode? = nil) {
self.val = val
self.left = left
self.right = right
}
}
class Solution {
func isSameTree(_ p: TreeNode?, _ q: TreeNode?) -> Bool {
if p == nil && q == nil {
return true
}
if p == nil || q == nil {
return false
}
if p!.val != q!.val {
return false
}
return isSameTree(p!.left, q!.left) && isSameTree(p!.right, q!.right)
}
}Ставь 👍 и забирай 📚 Базу знаний