美文网首页
102. 二叉树的层序遍历

102. 二叉树的层序遍历

作者: 康大侠 | 来源:发表于2021-04-17 09:40 被阅读0次
    层序遍历
        public List<List<Integer>> levelOrder(TreeNode root) {
            List<List<Integer>> totalList = new ArrayList<>();
            if (root == null) return totalList;
            List<Integer> subList = new ArrayList<>();
            Queue<TreeNode> queue = new LinkedList<>();
            queue.offer(root);
            int levealSize = 1;
            while (!queue.isEmpty()) {
                TreeNode tmpNode = queue.poll();
                levealSize--;
                subList.add(tmpNode.val);
    
                if (tmpNode.left != null) {
                    queue.offer(tmpNode.left);
                }
    
                if (tmpNode.right !=  null) {
                    queue.offer(tmpNode.right);
                }
    
                if (levealSize == 0) {
                    levealSize = queue.size();
                    totalList.add(subList);
                    subList = new ArrayList<>();
                }
            }
            return totalList;
        }
    

    相关文章

      网友评论

          本文标题:102. 二叉树的层序遍历

          本文链接:https://www.haomeiwen.com/subject/rsdulltx.html