41 二叉树的层序遍历

这篇具有很好参考价值的文章主要介绍了41 二叉树的层序遍历。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


给你二叉树的根节点 root ,返回其节点值的 层序遍历。 (即逐层地,从左到右访问所有节点)。

41 二叉树的层序遍历,HOT100,二叉树,搜索,算法,数据结构,leetcode
提示:

  • 树中节点数目在范围 [0, 2000] 内
  • -1000 <= Node.val <= 1000

题解1 迭代——BFS

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

41 二叉树的层序遍历,HOT100,二叉树,搜索,算法,数据结构,leetcode

题解2 递归——DFS

class Solution {
public:
    vector<vector<int>> ret;
    void level(TreeNode* root, int lev) {
        if(!root) return;
        if (lev >= ret.size()) {
            ret.push_back(vector<int>());
        }
        ret[lev].push_back(root -> val);
        level(root -> left, lev + 1);
        level(root -> right, lev + 1);
    }
    vector<vector<int>> levelOrder(TreeNode* root) {
        level(root, 0);
        return ret;
    }
};

41 二叉树的层序遍历,HOT100,二叉树,搜索,算法,数据结构,leetcode文章来源地址https://www.toymoban.com/news/detail-729459.html

到了这里,关于41 二叉树的层序遍历的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据结构】二叉树的层序遍历

    当我们面对一个树结构时,常常需要对其进行遍历以获取其中的节点信息。其中一种常用的遍历方式是层序遍历,也称为广度优先搜索(BFS)。本篇博客将详细介绍层序遍历的原理和实现方法。 层序遍历以树的根节点开始,按照从上到下、从左到右的顺序逐层遍历树中的节点

    2024年02月03日
    浏览(46)
  • 算法进阶——求二叉树的层序遍历

    题目 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)。 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], [15,7] ] 提示: 0 = 二叉树的结点数 = 1500 示例1 示例2 思路 利用辅助队列,通过bfs(广度优先)算法遍历二叉树

    2024年01月24日
    浏览(47)
  • 【C++】102.二叉树的层序遍历

    给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例1: 示例 2: 示例 3: 提示: 树中节点数目在范围 [0, 2000] 内 -1000 = Node.val = 1000 这个问题实际上可以只用一个队列就实现,只需要再增加一个变量 levelSize ,用来记录每一层

    2024年03月11日
    浏览(49)
  • 【LeetCode】102.二叉树的层序遍历

    给你二叉树的根节点  root  ,返回其节点值的  层序遍历  。 (即逐层地,从左到右访问所有节点)。 示例 1: 示例 2: 示例 3: 提示: 树中节点数目在范围  [0, 2000]  内 -1000 = Node.val = 1000 之前做的题里深度优先遍历(DFS)用得比较多,主要是回溯算法,这道题的层序遍

    2024年02月15日
    浏览(42)
  • day-20 二叉树的层序遍历

    思路:利用队列进行广度优先遍历即可 注意点:ArrayList执行remove之后,索引i会立即重排,注意可能越界 code:

    2024年03月19日
    浏览(49)
  • 每日一题 102二叉树的层序遍历

    给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入:root = [1] 输出:[[1]] 示例 3: 输入:root = [] 输出:[] 提示: 树中节点数目在范围 [0, 2000] 内 -1000 =

    2024年02月09日
    浏览(45)
  • 【数据结构】二叉树的层序遍历(四)

     目录 一,层序遍历概念 二,层序遍历的实现         1,层序遍历的实现思路         2,创建队列         Queue.h         Queue.c         3,创建二叉树         BTree.h         BTree.c         4,层序遍历的实现 层序遍历:除了先序遍历、中序遍历、

    2024年02月07日
    浏览(48)
  • LeetCode.107. 二叉树的层序遍历 II

    107. 二叉树的层序遍历 II 这个题目考查的是二叉树的层序遍历,对于二叉树的层序遍历,我们需要借助 队列 这种数据结构。再来回归本题 ,我们只需要将 二叉树的层序遍历的结果逆序,就可以得到这道题我们要求的答案了。接下来我们的难题就是 如何实现二叉树的层序遍

    2024年02月21日
    浏览(57)
  • 【数据结构与算法】力扣:二叉树的层序遍历

    给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入:root = [1] 输出:[[1]] 示例 3: 输入:root = [] 输出:[] 来源:力扣(LeetCode) 链接:https://leetcode.cn/p

    2024年02月13日
    浏览(47)
  • 每日一题:LeetCode-102.二叉树的层序遍历

    前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈    🔎🔎如果说代码有灵魂,那么它的灵魂一定是👉👉 算法 👈👈,因此,想要写出💚优美的程序💚,核心算法是必不可少的,少年,你渴望力量吗😆😆,想掌握程序的灵魂吗❓❗️那么就必须踏上这样一条漫长

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包