剑指Offer-18.二叉树的镜像(C++/Java)
题目:
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
分析:
求二叉树的镜像,实际上也就是将一个二叉树左右翻转。
从根节点开始将左右指针互换,再对左右子树递归执行下去即可。
8/ \
6 10
/ \ / \
5 7 9 11
↓
8
/ \
10 6
/ \ / \
9 11 5 7
↓8
/ \
10 6
/ \ / \
11 9 7 5
程序:
c++
class Solution {public:
void Mirror(TreeNode *pRoot) {
if(pRoot == nullptr)
return;
TreeNode *p = pRoot->left;
pRoot->left = pRoot->right;
pRoot->right = p;
Mirror(pRoot->left);
Mirror(pRoot->right);
}
};
Java
public class Solution {public void Mirror(TreeNode root) {
if(root == null)
return;
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
Mirror(root.left);
Mirror(root.right);
}
}
以上是 剑指Offer-18.二叉树的镜像(C++/Java) 的全部内容, 来源链接: utcz.com/z/390570.html