1.翻转一棵二叉树。
2.代码展示
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
struct TreeNode* invertTree(struct TreeNode* root)
{
if (root == NULL)
return 0;
int* tmp = root->left;
root->left=root->right;
root->right=tmp;
invertTree(root->left);
invertTree(root->right);
return root;
}
3.解题思路
首先判断是否为空树或者叶子节点,是就返回上一层,翻转二叉树,主要是将左右子树的指针指向的地址交换,然后逐层向下遍历,直到叶子节点,再返回上一层,完成递归的过程。