ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

102.二叉树的层次遍历

2020-01-08 19:01:00  阅读:231  来源: 互联网

标签:node 遍历 TreeNode push 二叉树 102 qu


C++中容器queue的使用

  • front(),back()访问队首队尾元素;pop(),push()出队和入队

题目:

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。

例如:
给定二叉树: [3,9,20,null,null,15,7],

3
/ \
9 20
    / \
  15 7
返回其层次遍历结果:

[
[3],
[9,20],
[15,7]
]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

用队列实现二叉树的层次遍历

 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     TreeNode *left;
 6  *     TreeNode *right;
 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 8  * };
 9  */
10 class Solution {
11 public:
12     vector<vector<int>> levelOrder(TreeNode* root) {
13         vector<vector<int>> res;
14         if(!root) return res;
15         queue<TreeNode*> qu;
16         qu.push(root);
17         while(!qu.empty()){
18             vector<int> tmp;
19             int len=qu.size();
20             for(int i=0;i<len;++i){   
21                TreeNode *node=qu.front();
22                qu.pop();
23                tmp.push_back(node->val);
24                if(node->left) qu.push(node->left);
25                if(node->right) qu.push(node->right);
26             }
27             res.push_back(tmp);
28         }
29         return res;
30     }
31 };

注意 

使用队列层次遍历二叉树,先把结点入队,如果队列不为空,输出队头元素。如果输出元素左右孩子不为空,依次把左右孩子入队。

标签:node,遍历,TreeNode,push,二叉树,102,qu
来源: https://www.cnblogs.com/Makerr/p/12168257.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有