LeetCode //C - 226. Invert Binary Tree

226. Invert Binary Tree

Given the root of a binary tree, invert the tree, and return its root.

Example 1:

Input: root = [4,2,7,1,3,6,9]
Output: [4,7,2,9,6,3,1]

Example 2:

Input: root = [2,1,3]
Output: [2,3,1]

Example 3:

Input: root = []
Output: []

Constraints:
  • The number of nodes in the tree is in the range [0, 100].
  • -100 <= Node.val <= 100

From: LeetCode

Link: 226. Invert Binary Tree


Solution:

Ideas:

This function checks if the current node is NULL and, if not, it proceeds to swap the left and right child nodes. Then it recursively calls itself for the left and right children, which continues the process down the tree until all nodes have been visited and their children swapped.

Code:
c 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */

struct TreeNode* invertTree(struct TreeNode* root) {
    if (root == NULL) {
        return NULL;
    }
    
    // Swap the left and right children
    struct TreeNode* temp = root->left;
    root->left = root->right;
    root->right = temp;
    
    // Recursively invert the subtrees
    invertTree(root->left);
    invertTree(root->right);
    
    return root;
}
相关推荐
m0_56988147几秒前
C++与自动驾驶系统
开发语言·c++·算法
2401_8331977321 分钟前
C++代码切片分析
开发语言·c++·算法
是翔仔呐21 分钟前
第13章 超声波测距传感器驱动:HC-SR04底层原理与C语言实现
c语言·开发语言·单片机·嵌入式硬件·gitee
月落归舟21 分钟前
每日算法题 14---14.环形链表
数据结构·算法·链表
m0_6214385221 分钟前
实时音频处理C++实现
开发语言·c++·算法
weixin_4219226924 分钟前
模板代码性能测试
开发语言·c++·算法
Liu6288836 分钟前
C++中的模板方法模式
开发语言·c++·算法
qq_3349031543 分钟前
高性能网络协议栈
开发语言·c++·算法
光电笑映1 小时前
STL 源码解剖系列:map/set 的底层复用与红黑树封装
c语言·数据结构·c++·算法
阿贵---1 小时前
模板编译期循环展开
开发语言·c++·算法