当前位置: 首页 > wzjs >正文

工商营业执照怎么网上年审营销软件知名乐云seo品牌

工商营业执照怎么网上年审,营销软件知名乐云seo品牌,html做电子书网站,微信公众平台注册订阅号一棵圣诞树记作根节点为 root 的二叉树,节点值为该位置装饰彩灯的颜色编号。请按照从 左 到 右 的顺序返回每一层彩灯编号。 示例 1: 输入:root [8,17,21,18,null,null,6] 输出:[8,17,21,18,6] LCR 149. 彩灯装饰记录 I - 力扣&…

一棵圣诞树记作根节点为 root 的二叉树,节点值为该位置装饰彩灯的颜色编号。请按照从  到  的顺序返回每一层彩灯编号。

示例 1:

输入:root = [8,17,21,18,null,null,6]
输出:[8,17,21,18,6]

LCR 149. 彩灯装饰记录 I - 力扣(LeetCode) 

经典树的层次遍历

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int[] decorateRecord(TreeNode root) {if (root == null) {return new int[0]; // 如果根节点为 null,返回空数组}Queue<TreeNode> queue = new ArrayDeque<>();TreeNode p = root;queue.offer(root);List<Integer> resultList = new ArrayList<>(); // 使用 List 存储结果while(!queue.isEmpty()){if (p.left != null) {queue.offer(p.left);}if (p.right != null) {queue.offer(p.right);}queue.poll();resultList.add(p.val); p = queue.peek();}int[] result = new int[resultList.size()];for (int i = 0; i < resultList.size(); i++) {result[i] = resultList.get(i);}return result;}
}

拓展题目

LCR 150. 彩灯装饰记录 II - 力扣(LeetCode)

这个题目就不是简单的层次遍历了,需要记录层数了。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<List<Integer>> decorateRecord(TreeNode root) {List<List<Integer>> resultList = new ArrayList<>();if (root == null) {return resultList; // 如果根节点为 null,返回空数组}Queue<TreeNode> queue = new ArrayDeque<>();queue.offer(root);while(!queue.isEmpty()){List<Integer> result = new ArrayList<>(); // 存储每层的节点int levelSize = queue.size(); // 当前层的节点个数for(int i = 0; i < levelSize; i++){TreeNode p = queue.poll(); // 取出队头节点result.add(p.val); // 将节点值加入当前层的结果if (p.left != null) {queue.offer(p.left);}if (p.right != null) {queue.offer(p.right);}}resultList.add(result);}return resultList;}
}

这个题目是层次遍历的另一种写法,我建议记这种,因为涉及需要跟层数相关的时候好操作。

为什么这样能保证在队列里的元素就是一层的元素呢。因为我们在上一次循环的过程中就已经保证下一层所有节点加入到队列了。我们在for循环中把上一层的节点全部去除,那么在每一次while循环开始前队列的长度就是每层的长度。

拓展题目

LCR 151. 彩灯装饰记录 III - 力扣(LeetCode)

这个题目跟上面那个差不多,就是要之字形输出。

 

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<List<Integer>> decorateRecord(TreeNode root) {List<List<Integer>> result = new ArrayList<>();if (root == null) {return result; // 如果根节点为 null,返回空数组}Queue<TreeNode> queue = new ArrayDeque<>();queue.offer(root);int level = 1;while (!queue.isEmpty()) {int levelSize = queue.size(); // 当前层的节点List<Integer> currentLevel = new ArrayList<>(); // 存储当前层的节点值// 遍历当前层的所有节点for (int i = 0; i < levelSize; i++) {TreeNode currentNode = queue.poll(); // 取出队头节点currentLevel.add(currentNode.val); // 将节点值加入当前层的结果// 将左右子节点加入队列if (currentNode.left != null) {queue.offer(currentNode.left);}if (currentNode.right != null) {queue.offer(currentNode.right);}}// 将当前层的结果加入最终结果if(level % 2 != 0){result.add(currentLevel);} else{Stack<Integer> stack = new Stack<>();for(int num : currentLevel){stack.add(num);}List<Integer> currentLevel2 = new ArrayList<>(); // 存储当前层的节点值逆向while(!stack.isEmpty()){currentLevel2.add(stack.pop());}result.add(currentLevel2);}level++;}return result;}
}

或者我们直接用LinkedList双端队列,两边都可以进出,只用在偶数的时候插到另一边就行:

class Solution {public List<List<Integer>> decorateRecord(TreeNode root) {Queue<TreeNode> queue = new LinkedList<>();List<List<Integer>> res = new ArrayList<>();if(root != null) queue.add(root);while(!queue.isEmpty()) {LinkedList<Integer> tmp = new LinkedList<>();for(int i = queue.size(); i > 0; i--) {TreeNode node = queue.poll();if(res.size() % 2 == 0) tmp.addLast(node.val);else tmp.addFirst(node.val);if(node.left != null) queue.add(node.left);if(node.right != null) queue.add(node.right);}res.add(tmp);}return res;}
}


文章转载自:

http://Rd4f0FXr.pngdc.cn
http://GCbCMozU.pngdc.cn
http://355d7s57.pngdc.cn
http://1YXreY6n.pngdc.cn
http://fQdieHXY.pngdc.cn
http://un1iNR9f.pngdc.cn
http://roo6NODt.pngdc.cn
http://cvhSwMiO.pngdc.cn
http://cnCjBKSg.pngdc.cn
http://3z4pEtke.pngdc.cn
http://AHhtLz7S.pngdc.cn
http://1yRcGSYs.pngdc.cn
http://qgNjcXjE.pngdc.cn
http://3aYzj84r.pngdc.cn
http://I98JG7xd.pngdc.cn
http://sssCoCIr.pngdc.cn
http://ww4B7po5.pngdc.cn
http://Ij5mowvG.pngdc.cn
http://eErUapJD.pngdc.cn
http://4efG9G1A.pngdc.cn
http://HQ2TrQ6c.pngdc.cn
http://6UploqTY.pngdc.cn
http://66mL4Aen.pngdc.cn
http://KGuxYOyb.pngdc.cn
http://7h5aYcK6.pngdc.cn
http://DSbXtImr.pngdc.cn
http://DuKADNlr.pngdc.cn
http://o06p3lNz.pngdc.cn
http://V1iPBzL0.pngdc.cn
http://tcvDhASc.pngdc.cn
http://www.dtcms.com/wzjs/754286.html

相关文章:

  • pc开奖网站建设重庆网络教育学院官网
  • 网站建设前期需要做出的准备手举牌战队图片在线制作
  • 青海wap网站建设比较好甘肃网站建设选哪家
  • 专业网站建设网站推广南阳网站运营招聘信息
  • 眼镜网站 wordpress模板做百度推广销售怎么样
  • 搜狐快站官网今天上海新闻综合新闻
  • 莱州市双语网站大型网站开发心得
  • 专门做电容的网站广西建设厅官方网站电话
  • 龙口建设网站海外贸易平台
  • 谷歌网站优化推广域名转接的流程
  • 建设银行网站怎么登陆密码忘了怎么办服装销售网站建设策划书
  • 网站开发 模板 c长沙网络推广外包费用
  • 怎样用一台电脑做代理 让别的电脑通过代理上几个网站群晖怎么做网站
  • 美丽女性网-大型女性门户网大型程序700m网站程序源码织梦石家庄工程官网
  • 素马网站制作开发东莞路桥投资建设公司官网
  • 建设银行登录网站想学习网站建设
  • 赤峰网站制作门户网站创新的方式有
  • 提供小企业网站建设wordpress 按点击调用热门文章
  • 关于服装的商务网站建设策划书常德天恒建设网站
  • 迎泽网站建设wordpress 谷歌搜索
  • 做报名链接的网站哪里可以下企业网站模板
  • 沧州网站建设费用全网vip影视自助建站系统
  • 被网站开发公司坑燃气行业网站建设方案
  • 二手车网站设计服务器上如何做网站
  • 网站开发者调试模式带会员注册企业网站源码
  • 罗湖田贝社区网站建设关键词分为哪三类
  • 南通网站推广公司哪家好广州论坛网站
  • 苏州品牌网站设计企业沈阳 网站开发制作
  • .net网站空间微网站建设哪家好
  • 建设一个网站大概费用网站静态和动态区别是什么意思