C/C++教程

102.二叉树的层序遍历——记录(C++)

本文主要是介绍102.二叉树的层序遍历——记录(C++),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
class Solution {
public:
    vector<vector<int>> levelOrder(TreeNode* root) {
         vector<vector<int>>a; 
         if (root == nullptr) return a;
         queue<TreeNode*>q;
    int i=0;
    q.push(root);
    vector<int>t={root->val};
    a.push_back(t);
    i++;
    while(!q.empty())
    {
        int n=q.size();
         vector<int>k;
        while(n)
        {
            TreeNode* t=q.front();q.pop();
            if(t->left)
            {
               q.push(t->left); 
               k.push_back(t->left->val);
            }
            if(t->right)
            {
                 q.push(t->right);
                 k.push_back(t->right->val);
            }
            --n;
        }
        if(!k.empty())  a.push_back(k);
            i++;
    }
    return a;
    }
};

在前面的广度优先的基础上打出来的。

 加油!

这篇关于102.二叉树的层序遍历——记录(C++)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!