//二叉树的镜像
//首根节点相同,左右子树调换了位置
package Function;
import Test.TreeNode;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
public class MirrorTreeNode27 {
public static TreeNode mirror(TreeNode node){
//空值判断
if (node==null||(node.left==null&&node.right==null)){
return node;
}
TreeNode temp=node.left;
node.left=node.right;
node.right=temp;
if (node.left!=null){
mirror(node.left);
}
if (node.right!=null){
mirror(node.right);
}
return node;
}
/**
* @Description: 自上而下,自左到右打印二叉树
* @author: shuyu.wang
* @date: 2019/6/30 14:13
//* @param null
* @return null
*/
public static void printFromTopToBottom(TreeNode pTreeRoot){
Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.offer(pTreeRoot);
while(!queue.isEmpty()){
TreeNode treeNode = queue.poll();
if(treeNode.left!=null){
queue.offer(treeNode.left);
}
if(treeNode.right!=null){
queue.offer(treeNode.right);
}
System.out.println(treeNode.val);
}
}
public static void main(String[] args) {
TreeNode root=new TreeNode(1);
TreeNode left1=new TreeNode(4);
TreeNode right1=new TreeNode(5);
TreeNode left=new TreeNode(3);
left.left=left1;
left.right=right1;
root.left=left;
TreeNode left2=new TreeNode(6);
TreeNode right2=new TreeNode(9);
TreeNode right=new TreeNode(7);
right.left=left2;
right.right=right2;
root.right=right;
printFromTopToBottom(mirror(root));
}
}
剑指offer--二叉树的镜像
最新推荐文章于 2021-12-13 19:46:37 发布