牛客 二叉树 NB20 翻转牛群结构

[原题连接](翻转牛群结构_牛客题霸_牛客网 (nowcoder.com))

这道题简单来讲就是给着棵树翻个面, 翻面后各个节点之间不会有子节点的交换, 但是每个节点的左右节点会做交换, 所以我们采用层序遍历来遍历二叉树, 在遍历的过程中交换每个节点的左右节点即可

牛客 二叉树 NB20 翻转牛群结构_第1张图片

public class Solution {  
    public TreeNode invertTree (TreeNode root) {  
        if(root == null) return root;  
        Deque<TreeNode> queue = new ArrayDeque<>();  
        ArrayList<List<TreeNode>> lists = new ArrayList<>();  
        queue.add(root);  
        while(!queue.isEmpty()) {  
            int size = queue.size();  
            for(int i = 0; i < size; i++) {  
                TreeNode poll = queue.poll();  
                if(poll.right != null) queue.add(poll.right);  
                if(poll.left != null) queue.add(poll.left);  
                TreeNode temp = poll.left;  
                poll.left = poll.right;  
                poll.right = temp;  
            }  
        }  
        return root;  
    }  
}

具体代码参上

好的!本次分享到这就结束了
如果对铁汁你有帮助的话,记得点赞+收藏⭐️+关注➕
我在这先行拜谢了:)

你可能感兴趣的:(数据结构,算法,java)