零题:算法(leetcode,附思维导图+全解)300题(102)二叉树层级序列遍历1题目描述2解法概览(思维导图)3所有解1方案11)代码://方案1《Self.2队列方法》。//思路://1)边界:如果root为false,直接返回[]。//2)状态初始化:让resList=[],curLevel=0,queue_1=[root],queue_2=[]。//3)核心:在有两个队列(queue_1,queue_2)的情况下,遍历二叉树。//4)返回结果resList。varlevelOrder=function(root){//1)边界:如果root为false,直接返回[]。如果(!root){返回[];}//2)状态初始化:让resList=[],curLevel=0,queue_1=[root],queue_2=[]。让resList=[],curLevel=0,queue_1=[root],queue_2=[];//3)核心:在有2个队列(queue_1,queue_2)的情况下,遍历二叉树。while(queue_1.length!==0){const{val,left,right}=queue_1.shift();//边界if(resList[curLevel]===undefined){resList[curLevel]=[];}resList[curLevel].push(val);如果(左){queue_2.push(左);}if(右){queue_2.push(右);}if(queue_1.length===0){curLevel++;//注意:下面2行可以简写为[queue_1,queue_2]=[queue_2,[]]。队列_1=队列_2;queue_2=[];}}//4)返回结果resList。returnresList;}2Scheme21)code://方案二“self.1队列方法(本质:方案1的优化版)”。//思路://1)边界:如果root===null,则直接返回[]。//2)状态初始化:queue=[root],curLevel=0,resList=[]。//3)核心:如果queue.length!==0,则循环处理。//3.1)核心:处理这个队列中的所有节点//并将每个节点的值放入当前级别的列表中。//3.1.1)初始化该层的列表。//3.1.2)分别根据左右子树更新队列值。//3.2)更新关卡curLevel++的值。//4)返回结果resList。varlevelOrder=function(root){//1)边界:如果root===null,则直接返回[]。如果(根===空){返回[];}//2)状态初始化:queue=[root],curLevel=0,resList=[].让队列=[root],curLevel=0,resList=[];//3)核心:如果queue.length!==0,则循环处理。while(queue.length!==0){//3.1)核心:处理这个队列队列中的所有节点//并将每个节点的值放入当前级别的链表中。constl=queue.length;for(leti=0;i
