Loading

二叉树的层序遍历-广度优先搜索

二叉树的层序遍历-广度优先搜索


    class Solution {

        public List<List<Integer>> levelOrder(TreeNode root) {
            if(root == null){
                return null;
            }
            List<List<Integer>> list = new ArrayList<>();
            LinkedList<TreeNode> q1 =new LinkedList<>();
            q1.addFirst(root);
             while (!q1.isEmpty()){
                 int size = q1.size();
                 List<Integer> w1 = new ArrayList<>();
                 for(int i=0;i<size;i++){
                     TreeNode treeNode = q1.removeLast();
                     w1.add(treeNode.val);
                     if(treeNode.left != null){
                         q1.addFirst(treeNode.left);
                     }
                     if(treeNode.right != null){
                         q1.addFirst(treeNode.right);
                     }
                 }
                 list.add(w1);

             }
         return list;
        }
    }


    public class TreeNode {
           int val;
           TreeNode left;
           TreeNode right;
           TreeNode() {}
           TreeNode(int val) { this.val = val; }
           TreeNode(int val, TreeNode left, TreeNode right) {
               this.val = val;
               this.left = left;
               this.right = right;
           }
       }
posted @ 2023-09-25 09:56  花园SON  阅读(7)  评论(0编辑  收藏  举报