剑指Offer-60 层次遍历

2019-01-25  本文已影响9人  北国雪WRG

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

技巧:使用Null 作为层的分隔符号。

public class Solution {
    ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
        ArrayList<ArrayList<Integer>> lists = new ArrayList<>();
        Queue<TreeNode> queue = new LinkedList<>();
        if(pRoot == null) return lists;
        queue.offer(pRoot);
        queue.offer(null);
        while(queue.peek() != null){
            ArrayList<Integer> list  = new ArrayList<>();
            TreeNode node = queue.poll();
            while(node != null){
                list.add(node.val);
                if(node.left != null) queue.offer(node.left);
                if(node.right != null) queue.offer(node.right);
                node = queue.poll();
            }
            queue.offer(null);
            lists.add(list);
        }
        return lists;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读