[LeetCode] Binary Tree Level Order Traversal

来源:互联网 发布:网络用语然是什么意思 编辑:程序博客网 时间:2024/06/06 19:49

Binary Tree Level Order Traversal:

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,#,#,15,7},

    3   / \  9  20    /  \   15   7

return its level order traversal as:

[  [3],  [9,20],  [15,7]]
/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    vector<vector<int> > levelOrder(TreeNode *root) {        // Start typing your C/C++ solution below        // DO NOT write int main() function            vector<int> level;vector<vector<int> > ans;if ( !root )return ans;queue<TreeNode* > Q;Q.push(root);int lsum=1;while(lsum>0){int next=0;level.clear();while(lsum--){TreeNode* tmp=Q.front();Q.pop();level.push_back(tmp->val);if ( tmp->left ){Q.push(tmp->left);next++;}if ( tmp->right){Q.push(tmp->right);next++;}}ans.push_back(level);lsum=next;}return ans;    }};


原创粉丝点击