代码改变世界

Binary Tree Level Order Traversal

2015-04-11 11:06  笨笨的老兔子  阅读(134)  评论(0编辑  收藏  举报

从根节点开始按层次遍历一棵二叉树

思路:广搜即可

  1. class Solution {
  2. public:
  3. vector<vector<int> > levelOrder(TreeNode *root) {
  4. vector<vector<int> > resVec;
  5. if (!root)
  6. return resVec;
  7. queue<TreeNode*> nodeQue;
  8. nodeQue.push(root);
  9. while (!nodeQue.empty())
  10. {
  11. vector<int> subVec;
  12. int qSize = nodeQue.size();
  13. for (size_t i = 0; i < qSize; i++)
  14. {
  15. if (nodeQue.front()->left)
  16. nodeQue.push(nodeQue.front()->left);
  17. if (nodeQue.front()->right)
  18. nodeQue.push(nodeQue.front()->right);
  19. subVec.push_back(nodeQue.front()->val);
  20. nodeQue.pop();
  21. }
  22. resVec.push_back(subVec);
  23. }
  24. return resVec;
  25. }
  26. };