package java_jianzhioffer_algorithm;
/**
* 题目:操作给定的二叉树,将其变换为源二叉树的镜像
* @author hexiaoli
* 思路:递归交换左右子树,和左右子树的节点
*/
class TreeNodem {
int val = 0;
TreeNodem left = null;
TreeNodem right = null;
public TreeNodem(int val) {
this.val = val;
}
}
public class Mirror {
public static void Mirror(TreeNodem root) {
TreeNodem temp = null;
System.out.println(root.val);
if(root != null) {
// 交换根节点下左右子节点
temp = root.left;
root.left = root.right;
root.right = temp;
}
// 递归,当根节点左子树不为空,交换左右子节点
if(root.left != null) {
Mirror(root.left);
}
// 递归,当根节点右子树不为空,交换左右子节点
if(root.right != null) {
Mirror(root.right);
}
}
public static void main(String[] args) {
TreeNodem head = new TreeNodem(5);
TreeNodem level1l = new TreeNodem(3);
TreeNodem level1r = new TreeNodem(4);
head.left = level1l;
head.right = level1r;
Mirror(head);
}
}
剑指offer(18)二叉树的镜像
猜你喜欢
转载自blog.csdn.net/hxl0925/article/details/89955798
今日推荐
周排行