马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
二叉树的层序遍历
题目:
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例1:二叉树:[3,9,20,null,null,15,7],
返回其层次遍历的结果:代码:class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector <vector <int>> ret;
//判断树是否为空
if (!root) return ret;
//定义一个队列 ——先进先出
queue <TreeNode*> q;
//队尾插入元素
q.push(root);
//判断队列是否为空
while (!q.empty()) {
//记录队列的大小
int currentLevelSize = q.size();
//push_back()->在数组最后添加一个元素
ret.push_back(vector <int> ());
for (int i = 1; i <= currentLevelSize; ++i) {
//队列
//front()->返回第一个元素
//pop()->从队头移除第一个元素
auto node = q.front(); q.pop();
//vector back()->返回当前vector容器中末尾元素的引用
ret.back().push_back(node->val);
//插入左孩子右孩子
if (node->left) q.push(node->left);
if (node->right) q.push(node->right);
}
}
return ret;
}
};
https://leetcode-cn.com/problems ... -leetcode-solution/
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems ... vel-order-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
|