TreeNode* invertTree(TreeNode* root) {
if (root == nullptr) return nullptr;
TreeNode* left = invertTree(root->left);
TreeNode* right = invertTree(root->right);
return new TreeNode(root->val, right, left);
}
public TreeNode invertTree(TreeNode root) {
if (root == null) return null;
TreeNode left = invertTree(root.left);
TreeNode right = invertTree(root.right);
return new TreeNode(root.val, right, left);
}
def invert_tree(root: Optional[TreeNode]) -> Optional[TreeNode]:
if root is None: return None
left = invert_tree(root.left)
right = invert_tree(root.right)
return TreeNode(root.val, right, left)
function invertTree(root: TreeNode | null): TreeNode | null {
if (root === null) return null;
const left = invertTree(root.left);
const right = invertTree(root.right);
return new TreeNode(root.val, right, left);
}
TreeNode* invertTree(TreeNode* root) {
if (root == nullptr) return nullptr;
queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
TreeNode* node = q.front(); q.pop();
swap(node->left, node->right);
if (node->left) q.push(node->left);
if (node->right) q.push(node->right);
}
return root;
}
public TreeNode invertTree(TreeNode root) {
if (root == null) return null;
Deque<TreeNode> queue = new ArrayDeque<>();
queue.add(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
TreeNode tmp = node.left; node.left = node.right; node.right = tmp;
if (node.left != null) queue.add(node.left);
if (node.right != null) queue.add(node.right);
}
return root;
}
def invert_tree(root: Optional[TreeNode]) -> Optional[TreeNode]:
if root is None: return None
queue = deque([root])
while queue:
node = queue.popleft()
node.left, node.right = node.right, node.left
if node.left: queue.append(node.left)
if node.right: queue.append(node.right)
return root
function invertTree(root: TreeNode | null): TreeNode | null {
if (root === null) return null;
const queue: TreeNode[] = [root];
while (queue.length > 0) {
const node = queue.shift()!;
[node.left, node.right] = [node.right, node.left];
if (node.left) queue.push(node.left);
if (node.right) queue.push(node.right);
}
return root;
}
TreeNode* invertTree(TreeNode* root) {
if (root == nullptr) return nullptr;
swap(root->left, root->right);
invertTree(root->left);
invertTree(root->right);
return root;
}
public TreeNode invertTree(TreeNode root) {
if (root == null) return null;
TreeNode tmp = root.left; root.left = root.right; root.right = tmp;
invertTree(root.left);
invertTree(root.right);
return root;
}
def invert_tree(root: Optional[TreeNode]) -> Optional[TreeNode]:
if root is None: return None
root.left, root.right = root.right, root.left
invert_tree(root.left)
invert_tree(root.right)
return root
function invertTree(root: TreeNode | null): TreeNode | null {
if (root === null) return null;
[root.left, root.right] = [root.right, root.left];
invertTree(root.left);
invertTree(root.right);
return root;
}
TreeNode* invertTree(TreeNode* root) {
if (root == nullptr) return nullptr;
vector<TreeNode*> stack{root};
while (!stack.empty()) {
TreeNode* node = stack.back(); stack.pop_back();
TreeNode* left = node->left;
node->left = node->right;
node->right = left;
if (node->left != nullptr) stack.push_back(node->left);
if (node->right != nullptr) stack.push_back(node->right);
}
return root;
}
public TreeNode invertTree(TreeNode root) {
if (root == null) return null;
Deque<TreeNode> stack = new ArrayDeque<>();
stack.push(root);
while (!stack.isEmpty()) {
TreeNode node = stack.pop();
TreeNode left = node.left;
node.left = node.right;
node.right = left;
if (node.left != null) stack.push(node.left);
if (node.right != null) stack.push(node.right);
}
return root;
}
def invert_tree(root: Optional[TreeNode]) -> Optional[TreeNode]:
if root is None: return None
stack = [root]
while stack:
node = stack.pop()
left = node.left
node.left = node.right
node.right = left
if node.left is not None: stack.append(node.left)
if node.right is not None: stack.append(node.right)
return root
function invertTree(root: TreeNode | null): TreeNode | null {
if (root === null) return null;
const stack: TreeNode[] = [root];
while (stack.length > 0) {
const node = stack.pop()!;
const left = node.left;
node.left = node.right;
node.right = left;
if (node.left !== null) stack.push(node.left);
if (node.right !== null) stack.push(node.right);
}
return root;
}