给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
示例 2:
输入:root = [2,1,3]
输出:[2,3,1]
示例 3:
输入:root = []
输出:[]
提示:
树中节点数目范围在 [0, 100] 内
-100 <= Node.val <= 100
分析:
递归思想
将根节点的左孩子和右孩子交换一下即可,交换时需要传递地址到交换函数中,因此需要用二级指针来接收。
当根结点为空时,结束递归,这是递归返回的条件。
AC代码:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ void swap(struct TreeNode**left,struct TreeNode**right) { struct TreeNode*tmp=*left; *left=*right; *right=tmp; } struct TreeNode* invertTree(struct TreeNode* root) { if(root==NULL) return NULL; swap(&root->left,&root->right); invertTree(root->left); invertTree(root->right); return root; }