Leetcode226. 翻转二叉树

文章目录

  • 题目介绍
  • 题目分析
  • 解题思路
    • 边界条件:节点为空时返回空
    • 子问题:交换左右子节点
  • 整体代码

题目介绍

Leetcode226. 翻转二叉树_第1张图片

题目分析

题目要求我们将树中每个节点的左右子节点全部交换,最后返回交换后的树的根节点。

解题思路

这题是比较常见的递归,直接找边界条件和子问题。

边界条件:节点为空时返回空

 if(root==NULL)
    return NULL;

子问题:交换左右子节点


      struct TreeNode*tmp=root->right;
        root->right=root->left;
        root->left=tmp;
    invertTree(root->left);
     invertTree(root->right);

整体代码

struct TreeNode* invertTree(struct TreeNode* root) {
 if(root==NULL)
    return NULL;

      struct TreeNode*tmp=root->right;
        root->right=root->left;
        root->left=tmp;
    invertTree(root->left);
     invertTree(root->right);
     return root;
}

你可能感兴趣的:(数据结构刷题,算法,数据结构)