問(wèn)題描述
????操作給定的二叉樹(shù)泼诱,將其變換為源二叉樹(shù)的鏡像骂束。
解題思路
????我們可以總結(jié)出這兩棵樹(shù)的根節(jié)點(diǎn)相同苛谷,但它們的左辅鲸、右兩個(gè)子節(jié)點(diǎn)交換了位置。所以我們可以得出求一棵樹(shù)的鏡像的過(guò)程:先前序遍歷這棵樹(shù)的每個(gè)節(jié)點(diǎn)腹殿,如果遍歷到的節(jié)點(diǎn)有子節(jié)點(diǎn)独悴,就交換它的兩個(gè)子節(jié)點(diǎn)。當(dāng)交換完所有非葉節(jié)點(diǎn)的左赫蛇、右子節(jié)點(diǎn)之后绵患,就得到了樹(shù)的鏡像。
public class Solution {
/**
* 二叉樹(shù)的構(gòu)造 內(nèi)部類
*/
public class TreeNode{
int val;
TreeNode left=null;
TreeNode right=null;
public TreeNode(int val) {
this.val = val;
}
}
public static void Mirror(TreeNode root) {
if (root==null){
return;
}
//交換左右節(jié)點(diǎn)
TreeNode temp;
temp=root.left;
root.left=root.right;
root.right=temp;
//魯棒性考慮
if (root.left!=null) {
Mirror(root.left);
}
if (root.right!=null) {
Mirror(root.right);
}
}
}