【LeetCode经典题目16】翻转二叉树

【LeetCode经典题目16】翻转二叉树_第1张图片

LeetCode原题链接
描述:

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

【LeetCode经典题目16】翻转二叉树_第2张图片
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

【LeetCode经典题目16】翻转二叉树_第3张图片
输入:root = [2,1,3]
输出:[2,3,1]

思路:分治思想+交换指针!
代码示例:

void Swap(struct TreeNode** left, struct TreeNode** right){
    struct TreeNode* temp = *left;
    *left = *right;
    *right = temp;
}
struct TreeNode* invertTree(struct TreeNode* root){
    if(root == NULL ){
        return NULL;
    }
    Swap(&root->left, &root->right);//交换左右子树
    // struct TreeNode* temp = root->left;
    // root->left = root->right;
    // root->right = temp;
    invertTree(root->left);
    invertTree(root->right);
    
    
    
    return root;
}

你可能感兴趣的:(学习分享,笔记,个人理解,c语言,开发语言,数据结构,算法)