文章目录
- 题目介绍
- 题目分析
- 解题思路
- 边界条件:节点为空时返回空
- 子问题:交换左右子节点
- 整体代码
题目介绍
题目分析
题目要求我们将树中每个节点的左右子节点全部交换,最后返回交换后的树的根节点。
解题思路
这题是比较常见的递归,直接找边界条件和子问题。
边界条件:节点为空时返回空
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;
}