102. Binary Tree Level Order Traversal

来源:互联网 发布:windows pyqt5 安装 编辑:程序博客网 时间:2024/06/07 03:27

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

For example:
Given binary tree [3,9,20,null,null,15,7],

    3   / \  9  20    /  \   15   7

return its level order traversal as:

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

思路:就是BFS一層一層跑,裡面有個迴圈負責把每一層的Node消耗完,在放入結果中。

class Solution {public:    vector<vector<int>> levelOrder(TreeNode* root) {        vector<int> level;        vector<vector<int>> level_vector;                if(root == NULL) {            return level_vector;        }        queue<TreeNode*> curQueue;        curQueue.push(root);        TreeNode* node = NULL;        while (!curQueue.empty()) {                        size_t curLevelSize = curQueue.size();            for(int index = 0; index < curLevelSize; index++) {                node = curQueue.front();                curQueue.pop();                                level.push_back(node->val);                                if(node->left) {                    curQueue.push(node->left);                }                if(node->right) {                    curQueue.push(node->right);                }            }                        level_vector.push_back(level);            level.clear();        }                return level_vector;    }};


0 0
原创粉丝点击