阿里巴巴网站如何做固定背景,婚纱销售网站,贵阳专业网站制作,做自己的网站的好处作者#xff1a;小卢 专栏#xff1a;《Leetcode》 喜欢的话#xff1a;世间因为少年的挺身而出#xff0c;而更加瑰丽。 ——《人民日报》 102. 二叉树的层序遍历
102. 二叉树的层序遍历
给你二叉树的根节点 root #xff0c;返回其节… 作者小卢 专栏《Leetcode》 喜欢的话世间因为少年的挺身而出而更加瑰丽。 ——《人民日报》 102. 二叉树的层序遍历
102. 二叉树的层序遍历
给你二叉树的根节点 root 返回其节点值的 层序遍历 。 即逐层地从左到右访问所有节点 示例
思路
我们这里利用一个队列q和levelsize(代表当前层数据的个数)
一开始我们先压入一个数值到q并且levelsize为1当q不为空会时我们循环levesize次每次取队头取完后再判断取的元素有没有左右节点有的话就压入然后结束循环的时候更新levelsize
代码
class Solution {
public:vectorvectorint levelOrder(TreeNode* root) {queueTreeNode*q;int levelsize0;if(root){q.push(root);levelsize1;}vectorvectorintvv;while(!q.empty()){vectorintv;while(levelsize--){TreeNode*frontq.front();q.pop();v.push_back(front-val);if(front-left){q.push(front-left);}if(front-right){q.push(front-right);}}levelsizeq.size();vv.push_back(v);}return vv;}
}; 107. 二叉树的层序遍历 II 107. 二叉树的层序遍历 II
题目
给你二叉树的根节点 root 返回其节点值 自底向上的层序遍历 。 即按从叶子节点所在层到根节点所在的层逐层从左向右遍历
示例 思路
和上题一样就结尾多一个逆置。
代码
class Solution {
public:vectorvectorint levelOrderBottom(TreeNode* root) {queueTreeNode*q;int levelsize 0;if (root){q.push(root);levelsize 1;}vectorvectorintvv;while (!q.empty()){vectorintv;while (levelsize--){TreeNode* front q.front();q.pop();v.push_back(front-val);if (front-left){q.push(front-left);}if (front-right){q.push(front-right);}}levelsize q.size();vv.push_back(v);}reverse(vv.begin(),vv.end());return vv;}
};