题目如下:
直接上代码:
package com.example.demo;
import java.util.LinkedList;
import java.util.Queue;
/**
* Created By poplar on 2019/10/30
*/
public class InvertBinaryTree {
public static void main(String[] args) {
TreeNode node = new TreeNode(1);
TreeNode node1 = new TreeNode(3);
TreeNode node2 = new TreeNode(6);
TreeNode node3 = new TreeNode(9);
TreeNode node4 = new TreeNode(2, node, node1);
TreeNode node5 = new TreeNode(7, node2, node3);
TreeNode root = new TreeNode(4, node4, node5);
TreeNode treeNode = invertHandle(root);
System.out.println(treeNode);
}
public static TreeNode invertHandle(TreeNode root) {
if (root == null) {
return null;
} else {
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);//添加失败不会报错
while (!queue.isEmpty()) {
//Retrieves and removes the head (first element) of this list,返回第一个元素并在队中删除
TreeNode p = queue.poll();
TreeNode t = p.left;
p.left = p.right;
p.right = t;
if (p.right != null) {
queue.offer(p.right);
}
if (p.left != null) {
queue.offer(p.left);
}
}
return root;
}
}
}