示例1
输入:
{8,6,10,5,7,9,11}
返回值:
{8,10,6,11,9,7,5}
说明:
如题面所示
示例2
输入:
{}
复制
返回值:
{}
代码
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pRoot TreeNode类
* @return TreeNode类
*/
void dfs(struct TreeNode* pRoot ) {
// write code here
if(!pRoot) return;
//先记录左右子节点
struct TreeNode* left = pRoot->left;
struct TreeNode* right = pRoot->right;
//交换左右子节点
pRoot->left = right;
pRoot->right = left;
if (pRoot->left) {
dfs(pRoot->left);
}
if (pRoot->right) {
dfs(pRoot->right);
}
}
struct TreeNode* Mirror(struct TreeNode* pRoot ) {
// write code here
dfs(pRoot);
return pRoot;
}