LeeCode226翻转二叉树(Java)(前序遍历)

题目链接: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;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43590593/article/details/113481005