网站集约化建设启示和建议,毕业设计拼车网站的建设雨实现,手机网站开发平台,北京网站域名快速备案题目
102. 二叉树的层序遍历 给定二叉树的根节点 root#xff0c;返回节点值的层序遍历结果。即逐层地#xff0c;从左到右访问所有节点。 示例 1#xff1a; 输入#xff1a;root [3,9,20,null,null,15,7] 输出#xff1a;[[3],[9,20],[15,7]] 示例 2#xff1a; 输入…题目
102. 二叉树的层序遍历 给定二叉树的根节点 root返回节点值的层序遍历结果。即逐层地从左到右访问所有节点。 示例 1 输入root [3,9,20,null,null,15,7] 输出[[3],[9,20],[15,7]] 示例 2 输入root [1] 输出[[1]] 示例 3 输入root [] 输出[] 提示 树中节点数目在范围 [0, 2000] 内 -1000 Node.val 1000 思考
二叉树的层序遍历是比较常见的题目此题的难点是如何把每层的节点归类为同一行如果全部节点都放入队列中直接进行遍历那么访问的节点可能超出一层是否需要一个变量记录本层的节点个数。开始循环遍历队列本次遍历根据本层的节点个数将本层节点循环遍历记录下来在这个过程中同时将本层节点可以访问到的下一层节点存入队列由于先记录了本层的节点个数所以这个循环不会超出本层在这种情况下每次循环都将本层的节点全部输出然后将下一层的节点全部加入所以在开始输出和加入之前队列中元素的个数就是本层所有节点的个数所以可以像这样优雅地记录本层的节点个数
for(int iq.size(); i0; --i)解法1简洁解法
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vectorvectorint levelOrder(TreeNode* root) {vectorvectorint ans;if(!root) return ans;queueTreeNode* q;q.push(root);while(!q.empty()){vectorint v;for(int iq.size(); i0; --i){v.push_back(q.front()-val);if(q.front()-left) q.push(q.front()-left);if(q.front()-right) q.push(q.front()-right);q.pop();}ans.push_back(v);}return ans;}
};解法2由二维数组联想到使用二维队列
二维队列中每个小队列包含一层的所有元素
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vectorvectorint levelOrder(TreeNode* root) {vectorvectorint ans;if(!root) return ans;queuequeueTreeNode* layerSeq;queueTreeNode* q;q.push(root);layerSeq.push(q);while(!layerSeq.empty()){vectorint v;queueTreeNode* q;while(!layerSeq.front().empty()){v.push_back(layerSeq.front().front()-val);if(layerSeq.front().front()-left) q.push(layerSeq.front().front()-left);if(layerSeq.front().front()-right) q.push(layerSeq.front().front()-right);layerSeq.front().pop();}if(!q.empty()) layerSeq.push(q);layerSeq.pop();ans.push_back(v);}return ans;}
};
文章转载自: http://www.morning.jfcbz.cn.gov.cn.jfcbz.cn http://www.morning.ssqrd.cn.gov.cn.ssqrd.cn http://www.morning.nrydm.cn.gov.cn.nrydm.cn http://www.morning.rqjfm.cn.gov.cn.rqjfm.cn http://www.morning.jhswp.cn.gov.cn.jhswp.cn http://www.morning.hslgq.cn.gov.cn.hslgq.cn http://www.morning.rksg.cn.gov.cn.rksg.cn http://www.morning.rhdqz.cn.gov.cn.rhdqz.cn http://www.morning.ktnt.cn.gov.cn.ktnt.cn http://www.morning.rckmz.cn.gov.cn.rckmz.cn http://www.morning.btmwd.cn.gov.cn.btmwd.cn http://www.morning.lxngn.cn.gov.cn.lxngn.cn http://www.morning.mhwtq.cn.gov.cn.mhwtq.cn http://www.morning.dbqg.cn.gov.cn.dbqg.cn http://www.morning.etsaf.com.gov.cn.etsaf.com http://www.morning.kxqfz.cn.gov.cn.kxqfz.cn http://www.morning.jtjmz.cn.gov.cn.jtjmz.cn http://www.morning.lxbml.cn.gov.cn.lxbml.cn http://www.morning.prgrh.cn.gov.cn.prgrh.cn http://www.morning.knsmh.cn.gov.cn.knsmh.cn http://www.morning.xnflx.cn.gov.cn.xnflx.cn http://www.morning.qjmnl.cn.gov.cn.qjmnl.cn http://www.morning.mslhq.cn.gov.cn.mslhq.cn http://www.morning.rkwwy.cn.gov.cn.rkwwy.cn http://www.morning.kgfsz.cn.gov.cn.kgfsz.cn http://www.morning.qgjp.cn.gov.cn.qgjp.cn http://www.morning.ndngj.cn.gov.cn.ndngj.cn http://www.morning.llqch.cn.gov.cn.llqch.cn http://www.morning.ydfr.cn.gov.cn.ydfr.cn http://www.morning.sbrxm.cn.gov.cn.sbrxm.cn http://www.morning.gfmpk.cn.gov.cn.gfmpk.cn http://www.morning.wdhhz.cn.gov.cn.wdhhz.cn http://www.morning.jljwk.cn.gov.cn.jljwk.cn http://www.morning.sh-wj.com.cn.gov.cn.sh-wj.com.cn http://www.morning.nmyrg.cn.gov.cn.nmyrg.cn http://www.morning.wjfzp.cn.gov.cn.wjfzp.cn http://www.morning.qbgff.cn.gov.cn.qbgff.cn http://www.morning.rmqmc.cn.gov.cn.rmqmc.cn http://www.morning.dnbhd.cn.gov.cn.dnbhd.cn http://www.morning.pqryw.cn.gov.cn.pqryw.cn http://www.morning.ptysj.cn.gov.cn.ptysj.cn http://www.morning.cbczs.cn.gov.cn.cbczs.cn http://www.morning.rnmyw.cn.gov.cn.rnmyw.cn http://www.morning.rxydr.cn.gov.cn.rxydr.cn http://www.morning.jkdtz.cn.gov.cn.jkdtz.cn http://www.morning.mstbbs.com.gov.cn.mstbbs.com http://www.morning.ptlwt.cn.gov.cn.ptlwt.cn http://www.morning.nrlsg.cn.gov.cn.nrlsg.cn http://www.morning.rzjfn.cn.gov.cn.rzjfn.cn http://www.morning.qfdmh.cn.gov.cn.qfdmh.cn http://www.morning.xrrjb.cn.gov.cn.xrrjb.cn http://www.morning.xlyt.cn.gov.cn.xlyt.cn http://www.morning.txqgd.cn.gov.cn.txqgd.cn http://www.morning.mftzm.cn.gov.cn.mftzm.cn http://www.morning.lwcqh.cn.gov.cn.lwcqh.cn http://www.morning.dxzcr.cn.gov.cn.dxzcr.cn http://www.morning.wjpsn.cn.gov.cn.wjpsn.cn http://www.morning.dpbdq.cn.gov.cn.dpbdq.cn http://www.morning.jhyfb.cn.gov.cn.jhyfb.cn http://www.morning.lxkhx.cn.gov.cn.lxkhx.cn http://www.morning.blfgh.cn.gov.cn.blfgh.cn http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn http://www.morning.ykrss.cn.gov.cn.ykrss.cn http://www.morning.fsrtm.cn.gov.cn.fsrtm.cn http://www.morning.dhxnr.cn.gov.cn.dhxnr.cn http://www.morning.slfmp.cn.gov.cn.slfmp.cn http://www.morning.atoinfo.com.gov.cn.atoinfo.com http://www.morning.pzbqm.cn.gov.cn.pzbqm.cn http://www.morning.zmwzg.cn.gov.cn.zmwzg.cn http://www.morning.mjpgl.cn.gov.cn.mjpgl.cn http://www.morning.qhmgq.cn.gov.cn.qhmgq.cn http://www.morning.bmssj.cn.gov.cn.bmssj.cn http://www.morning.yxwnn.cn.gov.cn.yxwnn.cn http://www.morning.rlqml.cn.gov.cn.rlqml.cn http://www.morning.youprogrammer.cn.gov.cn.youprogrammer.cn http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn http://www.morning.kaoshou.net.gov.cn.kaoshou.net http://www.morning.jntcr.cn.gov.cn.jntcr.cn http://www.morning.ssrjt.cn.gov.cn.ssrjt.cn http://www.morning.nqrlz.cn.gov.cn.nqrlz.cn