ভিডিওতে দেখো — YouTube @algonur_com

কোড

Python
def invertTree(root):
    if not root:
        return None
    # Swap children
    root.left, root.right = root.right, root.left
    # Recurse on both subtrees
    invertTree(root.left)
    invertTree(root.right)
    return root
Java
public TreeNode invertTree(TreeNode root) {
    if (root == null) return null;
    // Swap children
    TreeNode temp = root.left;
    root.left = root.right;
    root.right = temp;
    // Recurse
    invertTree(root.left);
    invertTree(root.right);
    return root;
}
Kotlin
fun invertTree(root: TreeNode?): TreeNode? {
    if (root == null) return null
    // Swap children
    val temp = root.left
    root.left = root.right
    root.right = temp
    // Recurse
    invertTree(root.left)
    invertTree(root.right)
    return root
}
C++
TreeNode* invertTree(TreeNode* root) {
    if (!root) return nullptr;
    swap(root->left, root->right);
    invertTree(root->left);
    invertTree(root->right);
    return root;
}

জটিলতা

O(n)
সময় — অ্যারেটা একবারই ঘুরি, ম্যাপে খোঁজা O(1)।
O(h) — call stack
জায়গা — সবচেয়ে খারাপ ক্ষেত্রে সব সংখ্যা ম্যাপে থাকে।
আগের সমস্যা← Reverse Nodes in k-Groupপরের সমস্যাMaximum Depth of Binary Tree →