自学内容网 自学内容网

从零开始的LeetCode刷题日记:102.二叉树的层序遍历

一.相关链接

题目链接:102.二叉树的层序遍历

二.心得体会

这道题也是二叉树题目的基础。层序遍历的思路其实非常简单,首先是要在出队列时把节点的左右孩子依次压进队列,其次就是要有个计数器来记录下一层访问的节点数量。代码还是要多写多练,才能牢牢记住。

三.代码
class Solution {
public:
    vector<vector<int>> levelOrder(TreeNode* root) {
        vector<vector<int>> ans;
        queue<TreeNode*> que;
        if(root) que.push(root);
        while(!que.empty()){
            vector<int> vec;
            int size = que.size();
            for(int i=0;i<size;i++) { //要按照每一层的节点数量来访问
                TreeNode* node = que.front();
                que.pop();
                if(node->left!=NULL) que.push(node->left);//访问完就把左右节点压进队列
                if(node->right!=NULL) que.push(node->right);
                vec.push_back(node->val);
            }
            ans.push_back(vec);
        }
        return ans;
    }
};


原文地址:https://blog.csdn.net/chenjialehhh/article/details/142964850

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!