您的当前位置:首页正文

算法-BFS广度优先搜索

来源:画鸵萌宠网

 

class Solution {
    public List<List<Integer>> levelOrderBottom(TreeNode root) {
        List<List<Integer>> result =new ArrayList<>();
        if(root == null){
            return result; 
        }
        Queue<TreeNode> q = new LinkedList<>();
        q.add(root);
        //新建一个以链表存储数组,每个数组和数组直接以链表的形式链接
        LinkedList<ArrayList<Integer>> temp =new LinkedList<>();
        while(q.size()>0){
            int size = q.size();
            ArrayList<Integer> list = new ArrayList<>();
            while(size>0){
               TreeNode f = q.poll();
               list.add(f.val);
                if(f.left!=null){
                    q.add(f.left);
                }
                if(f.right!=null){
                    q.add(f.right); 
                }
                size--;
            }
            //把每一层的数组放在前面用 addFirst()函数
            temp.addFirst(new ArrayList<>(list));
            result=new ArrayList<>(temp);
        }
        return result;
    }
}

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top