层序遍历的应用:
移步->LeetCode 102. 二叉树的层序遍历
移步->LeetCode 104. 二叉树的最大深度
移步-LeetCode 515. 在每个树行中找最大值
思路: 层序遍历的基础上添加了swap,将右边和左边的树节点翻转。
class Solution {
public TreeNode invertTree(TreeNode root) {
if(root==null) return root;
//先按照层入队,再逆序依次输出各层次。
Queue<TreeNode> que = new LinkedList<TreeNode>();
que.offer(root);
while(!que.isEmpty()){
int len = que.size();
while(len>0){
TreeNode curNode = que.poll();
swap(curNode);
if(curNode.right!=null) que.offer(curNode.right);
if(curNode.left!=null) que.offer(curNode.left);
len--;
}
}
return root;
}
public TreeNode swap(TreeNode root){
TreeNode tmp = root.left;
root.left = root.right;
root.right = tmp;
return root;
}
}