代码编织梦想

题目:

链接:剑指 Offer 32 - II. 从上到下打印二叉树 IILeetCode 102. 二叉树的层序遍历
难度:简单(剑指 Offer 32.)/中等(LeetCode 102.)
上一题博文:剑指 Offer 32 - I. 从上到下打印二叉树(BFS层序遍历)
下一题博文:剑指 Offer 32 - III. 从上到下打印二叉树 III(BFS层序遍历变形)

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

例如:

给定二叉树: [3,9,20,null,null,15,7],

在这里插入图片描述

返回其层次遍历结果:

[
[3],
[9,20],
[15,7]
]

提示:

节点总数 <= 1000

解题思路:

BFS广度优先遍历(二叉树层序遍历)的变形。相比前一题剑指 Offer 32 - I. 从上到下打印二叉树(BFS层序遍历),多了记录层次(深度)的处理,一次遍历一层多个节点。

代码:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector<vector<int>> levelOrder(TreeNode* root) {
        vector<vector<int>> ans;
        if(root == nullptr) return ans;
        queue<TreeNode*> q;
        q.emplace(root);
        while(!q.empty()) {
            vector<int> temp;
            int size = q.size();
            while(size--) {
                TreeNode* node = q.front();
                temp.emplace_back(node->val);
                if(node->left != nullptr) q.emplace(node->left);
                if(node->right != nullptr) q.emplace(node->right);
                q.pop();
            }
            ans.emplace_back(temp);
        }
        return ans;
    }
};

时间复杂度O(n),空间复杂度O(n)。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39117227/article/details/128010610

LeetCode(剑指offer-tree)-面试题32 - II. 从上到下打印二叉树 II-爱代码爱编程

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 提示: 节点总数 <

【LeetCode练习】剑指 Offer 32 - II. 从上到下打印二叉树 II(简单|JS|层序遍历)-爱代码爱编程

文章目录 一、题目描述二、解题思路三、代码实现 一、题目描述 二、解题思路 层序遍历。有多少层,res数组就有多长,遍历新的一层就要在对应res的位置初始化空数组,按层序遍历的顺序把节点值push进去。 三、代码实现 var levelOrder = function(root) { let res = [] fun

层序遍历&&剑指 Offer 32 - II. 从上到下打印二叉树 II-爱代码爱编程

其他博主那里看的一句话:dfs优先考虑递归,bfs优先考虑queue。 1.层序遍历 queue队列遍历,不断入队和出队。 参考:C++ 二叉树的层次遍历 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *l

剑指offer32-II. 从上到下打印二叉树II-爱代码爱编程

剑指 Offer 32 - II. 从上到下打印二叉树 II 难度:简单 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3],

Leetcode刷题笔记——剑指 Offer 32 - II. 从上到下打印二叉树 II(简单)-爱代码爱编程

Leetcode刷题笔记——剑指 Offer 32 - II. 从上到下打印二叉树 II(简单) 题目描述方法一:层序遍历BFS复杂度分析C++代码参考链接 题目描述 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7],返回其层次遍历结果: [ [

【LeetCode - Java练习】剑指 Offer 32 - II. 从上到下打印二叉树 II(简单)-爱代码爱编程

文章目录 1.题目描述2.解题思路3.代码实现 1.题目描述 2.解题思路 I. 按层打印:题目要求的二叉树的从上至下打印(即按层打印),又称为二叉树的广度优先搜索(BFS)。BFS通常借助队列的先入先出特性来实现。 II. 每层打印到一行:将本层全部节点打印到一行,并将下一层全部节点加入队列,以此类推,即可分为多行打印。 算法流程:

LeetCode剑指 Offer 32 - III. 从上到下打印二叉树 III-爱代码爱编程

 这道题比较中规中矩,就是一个BFS,不过有一个每一层输出顺序的问题(第一层从左到右打印,第二层从右到左打印) 看代码: public static List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>>

LeetCode 606. 根据二叉树创建字符串-爱代码爱编程

解题思路: 改动的二叉树中序遍历,具体表现为加括号时同时检查左右子树是否为空。 代码: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; *

阿里巴巴春季2023届校园招聘在线笔试考题-爱代码爱编程

解题思路: 遍历每一位上的数字,找到最大的数字,推断其最小可能的进制(上限都是16)。然后按照所有可能的进制按从小到大的顺序,还原其十进制数形式。 注意: 这里在还原十进制数时需要一个取模10^9+7的操作,可能会爆int上限,所以用long long。要求存在相同结果时只保留一个。当且仅当该数字仅存在一位时才能在不同进制下有相同结果,所以对此做一

【剑指 Offer 32 - II. 从上到下打印二叉树 II】-爱代码爱编程

【剑指 Offer 32 - II. 从上到下打印二叉树 II】 题目描述:示例:解析思路:代码(python3)代码(cpp) 题目描述: 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/ 从上到下按层打印

【剑指 offer 32 - ii. 从上到下打印二叉树 ii】_lfsun666的博客-爱代码爱编程

package com.example.demomain.demoleetcode.easy; import org.junit.Test; import java.util.ArrayList; import java

剑指 offer 32 -爱代码爱编程

剑指 Offer 32 - II. 从上到下打印二叉树 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结

leetcode 806. 写字符串需要的行数-爱代码爱编程

解题思路: 简单的直接遍历,阈值溢出并计数。 代码: class Solution { public: vector<int> numberOfLines(vector<int>&

leetcode 剑指 offer 32 -爱代码爱编程

题目描述: 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7],     3    / \   9  20     /  \    15   7 返回其层次遍历结果: [   [3],   [9,20],   [15,7] ] 提示: 节点总数 &

剑指 offer 32 -爱代码爱编程

题目 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果 [ [3], [9,20], [15

剑指 offer 32 -爱代码爱编程

文章目录 1:问题描述2:问题分析2.1 时间复杂度和空间复杂度2.2 栈2.2.1 方法解释2.2.2 代码 1:问题描述 来源:LeetCode 难度:简单 问题详情:  

剑指 offer 32 -爱代码爱编程

题目 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回: [3,9,20,15,7] 题解思路 二叉树的