首页 > 代码库 > Binary Tree Level Order Traversal
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]]
思路:对输入二叉树进行广度优先遍历即可。
1 class Solution { 2 public: 3 vector<vector<int>> levelOrder( TreeNode *root ) { 4 vector<vector<int>> levels; 5 if( !root ) { return levels; } 6 vector<TreeNode*> nodes( 1, root ); 7 while( !nodes.empty() ) { 8 vector<TreeNode*> new_nodes; 9 vector<int> values;10 for( auto iter = nodes.begin(); iter != nodes.end(); ++iter ) {11 values.push_back( (*iter)->val );12 if( (*iter)->left ) { new_nodes.push_back( (*iter)->left ); }13 if( (*iter)->right ) { new_nodes.push_back( (*iter)->right ); }14 }15 levels.push_back( values );16 nodes = new_nodes;17 }18 return levels;19 }20 };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。