Binary Tree Level Order Traversal

来源:互联网 发布:域名争议解决办法 编辑:程序博客网 时间:2024/06/01 23:19

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> > res;void traversal( int level, TreeNode* root){if (0 == root) return;if (level + 1 > res.size()){vector<int> vec;vec.push_back(root->val);res.push_back(vec);}else{res[level].push_back(root->val);}traversal(level + 1, root->left);traversal(level + 1, root->right);}    vector<vector<int> > levelOrder(TreeNode *root){        res.clear();traversal(0, root);return res;    }};


0 0
原创粉丝点击