JZ27 二叉树的镜像
【题】
将二叉树镜像,即将其所有左右子树交换。
【思路】
【代码】
1、递归
import java.util.*;
public class Solution {
public TreeNode Mirror (TreeNode pRoot) {
if(pRoot==null){
return null;
}
TreeNode left = Mirror(pRoot.left);
TreeNode right = Mirror(pRoot.right);
pRoot.left=right;
pRoot.right=left;
return pRoot;
}
}
2、栈
import java.util.*;
public class Solution {
public TreeNode Mirror (TreeNode pRoot) {
if(pRoot==null){
return null;
}
Stack s = new Stack();
s.push(pRoot);
while(!s.isEmpty()){
TreeNode node = s.pop();
if(node.left!=null){
s.push(node.left);
}
if(node.right!=null){
s.push(node.right);
}
TreeNode temp = node.left;
node.left=node.right;
node.right=temp;
}
return pRoot;
}
}