剑指offer(18)二叉树的镜像

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);

	}

}

猜你喜欢

转载自blog.csdn.net/hxl0925/article/details/89955798
今日推荐