題目描述
操作給定的二叉樹,將其變換爲源二叉樹的鏡像。
輸入描述:
二叉樹的鏡像定義:源二叉樹
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);
}
}
}