package com.daily.daily20210123;
import java.util.LinkedList;
import java.util.Queue;
/**
* @Project: dailyCode
* @Site: http://www.zhao1iang.club/
* @Copyright: ©CodeLamp
* @Author: zhaoliang
* @Create: 2021-01-23 19:12
* @Desc: 反转二叉树
**/
public class invertTree {
//翻转一棵二叉树。
class TreeNode{
int val;
TreeNode left;
TreeNode right;
TreeNode(int x){
this.val = x;
}
}
//1
// public TreeNode invertTree(TreeNode root){
// return invert(root);
// }
//
// private TreeNode invert(TreeNode root) {
// if (root==null)return null;
// TreeNode left = invert(root.left);
// TreeNode right = invert(root.right);
// root.right = left;
// root.left = right;
// return root;
// }
//2
public TreeNode invertTree(TreeNode root){
if (root==null)return root;
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
while(!queue.isEmpty()){
TreeNode node = queue.poll();
TreeNode temp = node.left;
node.left = node.right;
node.right = temp;
if (node.left!=null)queue.add(node.left);
if (node.right!=null)queue.add(node.right);
}
return root;
}
}