[关闭]
@LIUHUAN 2019-05-05T23:09:49.000000Z 字数 520 阅读 840

二叉树的层次遍历

algorithm


二叉树定义

  1. struct TreeNode {
  2. int val;
  3. TreeNode *left;
  4. TreeNode *right;
  5. TreeNode(int x) : val(x), left(NULL), right(NULL) {}
  6. };

层次遍历的实现

  1. vector<int> tree_level_order_traverse(TreeNode* root) {
  2. if(root == nullptr)
  3. return {};
  4. queue<TreeNode*> que;
  5. que.push(root);
  6. vector<int> res;
  7. while(!que.empty()) {
  8. int size = que.size();
  9. for(int i =0 ;i < size; i++) {
  10. TreeNode *n = que.front();
  11. que.pop();
  12. res.push_back(n->val);
  13. if(n->left)
  14. que.push(n->left);
  15. if(n->right)
  16. que.push(n->right);
  17. }
  18. }
  19. return res;
  20. }

相关题目

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注