【二叉树】Leetcode N 叉树的层序遍历

题目讲解

429. N 叉树的层序遍历
在这里插入图片描述


算法讲解

在做层序遍历的时候由于它的每一个结点是有val + vector child组成,所以在做层序遍历的时候需要考虑它每一层结点的个数,那我们就可以使用一个queue保存每一层的结点;那么我们在做第一层的时候,这样很简单,第一层用完怎么做呢?我们在准备第二层结点的时候,就需要将第一层结点提取出来,然后将第一层节点pop出去,现在的时候,第一层的vector ret已经出现的,但是我们queue还是没有处理的,所以在添加当前节点的val之后就需要遍历结点的child vector,将它的下一层结点放到queue中,这样的话,每一层的结点就会出现在queue中

/*
// Definition for a Node.
class Node {
public:
    int val;
    vector<Node*> children;

    Node() {}

    Node(int _val) {
        val = _val;
    }

    Node(int _val, vector<Node*> _children) {
        val = _val;
        children = _children;
    }
};
*/

class Solution {
public:
    vector<vector<int>> levelOrder(Node* root) {
        int levesize = 0;
        queue<Node*>q;
        vector<vector<int>>ret;
        if(root == nullptr)return ret;
        q.push(root);
        while(!q.empty())
        {
            levesize = q.size();
            vector<int> temp;
            for(int i = 0; i < levesize; i++)
            {
                Node* cur = q.front();
                q.pop();
                temp.push_back(cur->val);
                for(Node* child : cur->children)
                {
                    q.push(child);
                }
            }
            ret.push_back(temp);
        }
        return ret;
    }
};

相关推荐

  1. 102.

    2024-05-12 22:36:05       49 阅读
  2. 107. II

    2024-05-12 22:36:05       61 阅读
  3. 102.

    2024-05-12 22:36:05       53 阅读
  4. leetcode 102.

    2024-05-12 22:36:05       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-12 22:36:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-12 22:36:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-12 22:36:05       87 阅读
  4. Python语言-面向对象

    2024-05-12 22:36:05       96 阅读

热门阅读

  1. 如何excel里面数据格式设置为utf-8

    2024-05-12 22:36:05       28 阅读
  2. 使用 git rebase 还是 git merge,优缺点

    2024-05-12 22:36:05       29 阅读
  3. Vue项目中如何通过配置修改项目名称

    2024-05-12 22:36:05       40 阅读
  4. 除了GET方法,新的HTTP QUERY方法规范发布

    2024-05-12 22:36:05       30 阅读
  5. OpenCV 阈值法

    2024-05-12 22:36:05       33 阅读
  6. 使用openssl生成自签名证书

    2024-05-12 22:36:05       39 阅读