操作给定的二叉树,将其变换为源二叉树的镜像。
比如: 源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5 递归法
我首先想到的是写一个swap方法,形参为根节点,将其左右节点调换,之后从根节点开始,在每一次迭代中,先将该节点左右子树调换,在对其左右节点分别使用Mirror方法,直到叶子节点处。直接返回根节点即可。
import java.util.*;
public class Solution {
public TreeNode Mirror (TreeNode pRoot) {
// write code here
if(pRoot==null || pRoot.left==null&&pRoot.right==null){
return pRoot;
}
swap(pRoot);
Mirror(pRoot.left);
Mirror(pRoot.right);
return pRoot;
}
public void swap(TreeNode root){
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
}
} 


京公网安备 11010502036488号