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

一个人开公司做网站数据分析软件

一个人开公司做网站,数据分析软件,网站排名首页,深圳哪个网站发布做网站103. 二叉树的锯齿形层序遍历 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 示例 1:输入&#xff1a…

103. 二叉树的锯齿形层序遍历

给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

示例 1:输入:root = [3,9,20,null,null,15,7]
输出:[[3],[20,9],[15,7]]示例 2:输入:root = [1]
输出:[[1]]示例 3:输入:root = []
输出:[]提示:树中节点数目在范围 [0, 2000] 内
-100 <= Node.val <= 100

在这里插入图片描述

题解:

方法一:按层模拟BFS

/*** 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 void reverse(List<Integer> list){int size = list.size();int tmp[] = new int[size];for(int i=0;i<size;i++){tmp[i] = list.get(i);}int index = 0;for(int i=size-1;i>=0;i--){list.set(index,tmp[i]);index++;}}public List<List<Integer>> zigzagLevelOrder(TreeNode root) {List<List<Integer>> res = new ArrayList<>();if(root == null){return res;}Queue<TreeNode> queue = new LinkedList<>();boolean flag = true; // true代表->   false代表<-List<Integer> first = new ArrayList<>();first.add(root.val);if(root.left != null)queue.offer(root.left);if(root.right != null)queue.offer(root.right);res.add(first);while(!queue.isEmpty()){List<Integer> tmp = new ArrayList<>();int count = queue.size();while(count > 0){TreeNode node = queue.poll();if(node.left != null)queue.offer(node.left);if(node.right != null)queue.offer(node.right);tmp.add(node.val);count--;}flag = !flag;if(!flag){//对此时取到的tmp顺序取反reverse(tmp);}res.add(tmp);}return res;}
}

方法二:双端队列+奇偶

/*** 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>> zigzagLevelOrder(TreeNode root) {List<List<Integer>> res = new ArrayList<>();if(root == null){return res;}Queue<TreeNode> queue = new LinkedList<>();int len = 1;// 奇数代表->   偶数代表<-List<Integer> first = new LinkedList<>();first.add(root.val);if(root.left != null)queue.offer(root.left);if(root.right != null)queue.offer(root.right);res.add(first);len++;while(!queue.isEmpty()){// 队列依旧是传统队列,但是每一个加入到res中的小list都是用双端形式,从而形式上实现双端队列List<Integer> tmp = new LinkedList<>();// 也是因为链表形式相较于数组形式更利于反转int count = queue.size();while(count > 0){TreeNode node = queue.poll();if(node.left != null)queue.add(node.left);      if(node.right != null)queue.offer(node.right);if(len % 2 == 0){tmp.addFirst(node.val); }else{tmp.addLast(node.val);}count--;}res.add(tmp);len++;}return res;}
}

在这里插入图片描述

http://www.dinnco.com/news/56779.html

相关文章:

  • 网站规划与建设类毕业论文怎么写seo网站诊断价格
  • 游戏直播网站怎么做网盟推广平台
  • 网站开发不足之处品牌推广宣传词
  • 拖拽网站怎么做的广西网络推广公司
  • 网站模板可以自己做吗谷歌广告代运营
  • 做网站 技术小说排行榜2020前十名
  • 做3d图的网站有哪些软件下载《新闻联播》 今天
  • 网站有几种类型百度快速排名 搜
  • 深圳平湖网站建设seo网站优化优化排名
  • 党校网站建设的目的网络广告公司排名
  • 怎么做虚拟网站免费b站网页推广
  • 传媒网站建设搜狗站长平台打不开
  • 珠海市网站设计公司优就业seo课程学多久
  • 二七区做网站企业培训课程设置
  • 找个网页公司做网站无锡百度推广平台
  • 节日网站设计黄页推广
  • 做暧暧视频网站在线室内设计培训
  • 电子商务网站推广策略主要内容百度网站下载
  • 长沙网站改版印度疫情为何突然消失
  • 阿里云服务器ecs搭建wordpress广州seo排名优化
  • 事业单位建立网站2022年最新新闻播报稿件
  • 摄影师网站模板其他搜索引擎
  • 网站建设分哪些类别营销管理系统
  • 可以做产品宣传的网站seo点击软件哪个好用
  • 网站的seo搜狗站长推送工具
  • 无锡专业做网站的公司哪家好网络营销策略都有哪些
  • 德州手机网站建设电话网站推广方案模板
  • 太原网络推广网站新东方线下培训机构官网
  • 网站开发微信支付详细教程2023上海又出现疫情了
  • 承德网站建设公司指数分布