每天能够写一道题也是可以的,如果这道题可以有所收获的话!!!
- 这个题目首先想到的是采用分治方法;
- 按照题目表达的意思,左边的子树要和右边的子树互换达到要求;
- 把每个节点的左右节点互换,遍历所有节点,当节点为空返回空,递归下去就可以完成任务了;
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pRoot TreeNode类
* @return TreeNode类
*/
struct TreeNode* Mirror(struct TreeNode* pRoot ) {
// write code here
if(pRoot==NULL){
return NULL;
}
struct TreeNode* temp=pRoot->left;
pRoot->left=pRoot->right;
pRoot->right=temp;
Mirror(pRoot->left);
Mirror(pRoot->right);
return pRoot;
}
还是老样子,有空刷题还是不错的