题目链接:LeeCode226翻转二叉树
题目描述:
边先序遍历边构建一个反转的二叉树
class Solution {
public static TreeNode invertTree(TreeNode root) {
if(root==null)return null;
Queue<TreeNode> queue=new LinkedList<>();
Queue<TreeNode> newqueue=new LinkedList<>();
TreeNode node=root;
TreeNode newroot=new TreeNode(root.val);
TreeNode newnode=newroot;
while(node!=null||!queue.isEmpty()){
if (node != null&&newnode!=null) {
queue.offer(node);
newqueue.offer(newnode);
node=node.right;
if(node!=null)
newnode.left=new TreeNode(node.val);
newnode=newnode.left;
}else{
node=queue.poll();
newnode=newqueue.poll();
node=node.left;
if(node!=null)
newnode.right=new TreeNode(node.val);
newnode=newnode.right;
}
}
return newroot;
}
}