《劍指 offer》 學習18之二叉樹的鏡像

題目描述

操作給定的二叉樹,將其變換爲源二叉樹的鏡像。
輸入描述:

二叉樹的鏡像定義:源二叉樹 
    	    8
    	   /  \
    	  6   10
    	 / \  / \
    	5  7 9 11
    	鏡像二叉樹
    	    8
    	   /  \
    	  10   6
    	 / \  / \
    	11 9 7  5

題目鏈接:牛客網

解題思路


public class Main {
    public static class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;

        public TreeNode(int val) {
            this.val = val;

        }

    }
    
	public static void main(String[] args) {
		TreeNode root = new TreeNode(8);
        root.right = new TreeNode(10);
        root.left = new TreeNode(6);
        root.left.left = new TreeNode(5);
        root.left.right = new TreeNode(7);
        root.right.left = new TreeNode(9);
        root.right.right = new TreeNode(11);
        
        printTree(root);
        
        mirror(root);
        
        System.out.println("\n");
        
        printTree(root);
	}
	
	public static void mirror(TreeNode root) {
	    if (root == null) {
	        return;
	    } 
	    
	    swap(root);
	    mirror(root.left);
	    mirror(root.right);
	}
	
	public static void swap(TreeNode root) {
	    TreeNode temp = root.left;
	    root.left = root.right;
	    root.right = temp;
	}
	
	public static void printTree(TreeNode node) {
        if (node != null) {
            printTree(node.left);
            System.out.print(node.val + " ");
            printTree(node.right);
        }
    }
}

測試結果

image.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章