剑指 Offer 32 - III. 从上到下打印二叉树 III---LinkedList(双向链表)

剑指 Offer 32 - III. 从上到下打印二叉树 III

LinkedList  

list. addLast

list.addFirst

list.add--->从后面添加元素

class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        List<List<Integer>> res=new ArrayList<>();
        if(root==null)  return res;
        Queue<TreeNode> q=new LinkedList<>();
        q.add(root);

        while(!q.isEmpty()){
            int size=q.size();
            LinkedList<Integer> list=new LinkedList<>();
            for(int i=0;i<size;i++){
                TreeNode node=q.poll();
                if(res.size()%2==0) list.addLast(node.val);
                else list.addFirst(node.val);
                if(node.left!=null)     q.add(node.left);
                if(node.right!=null)    q.add(node.right);
            }

            res.add(list);
        }
        return res;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_41041762/article/details/108079876