这是一道经典的问题,翻转二叉树,将所有的左右孩子都翻转。
这里我们同样使用递归的方法,翻转左右子树。左子树再翻转它的左右子树,右子树再翻转它的左右子树。结束条件就是遇到空结点结束。
代码如下:
struct TreeNode* invertTree(struct TreeNode* root) {
if(root == NULL)
return NULL;
struct TreeNode* left = invertTree(root->left);
struct TreeNode* right = invertTree(root->right);
root->left = right;
root->right = left;
return root;
}