Binary Tree Level Order Traversal

来源:互联网 发布:java发邮件excel附件 编辑:程序博客网 时间:2024/06/06 08:49

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]]

confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.

许久未练, 生疏不少. 叹~

/** * 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)    {        vector<int> vee;        vector<vector<int>>ve;        queue<TreeNode*> qu;        TreeNode *no;        if(NULL==root)            return ve;        qu.push(root);        int len = qu.size();        while(len!=0)        {            while(len--)            {                no = qu.front();                qu.pop();                vee.push_back(no->val);                if(NULL!=no->left)qu.push(no->left);                if(NULL!=no->right)qu.push(no->right);            }            ve.push_back(vee);            vee.clear();            len = qu.size();        }        return ve;    }};


0 0
原创粉丝点击