Sword refers to offer 32-III. Print binary tree from top to bottom III

Sword refers to offer 32-III. Print binary tree from top to bottom III

Title description

Insert picture description here

Problem-solving ideas

class Solution {
    
    
    public List<List<Integer>> levelOrder(TreeNode root) {
    
    
        List<List<Integer>> res = new LinkedList<>();

        Queue<TreeNode> queue = new LinkedList<>();
        if (root != null) queue.offer(root);
        int level = 1;  //记录当前层,从第一层开始

        while (!queue.isEmpty()) {
    
    
            //保存当前层的节点
            LinkedList<Integer> temp = new LinkedList<>();
            int size = queue.size();
            for (int i = 0; i < size; i++) {
    
    
                TreeNode currNode = queue.poll();
                //奇数层则插入到尾部,偶数层插入到首部
                if ((level & 0x01) == 1) {
    
    
                    temp.addLast(currNode.val);
                } else {
    
    
                    temp.addFirst(currNode.val);
                }
                //左右孩子入队
                if (currNode.left != null) queue.offer(currNode.left);
                if (currNode.right != null) queue.offer(currNode.right);
            }
            level++;  //层数加1
            res.add(temp);  
        }
        return res;

    }
}

Guess you like

Origin blog.csdn.net/cys975900334/article/details/115121753