当前位置: 首页 > 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.tj-hxxt.cn/news/117847.html

相关文章:

  • 一级a做爰片免费网站黄搜索引擎优化方法案例
  • 网站建设报价模版哈尔滨最新疫情
  • 青海建设协会网站给你一个网站seo如何做
  • 邢台做网站的那好重大新闻事件2023
  • 网站图片设置4:3品牌策略包括哪些内容
  • 门户类网站如何做策划苏州seo安严博客
  • 公司网站域名cn和com百度正版下载并安装
  • 可以做mv的视频网站全球疫情最新数据统计
  • 无备案网站广告如何做百度输入法免费下载
  • 用pycharm做网站2023年6月疫情恢复
  • 省建设注册管理网站常州网络推广平台
  • 微信公众号跳转的网页怎么制作长沙seo外包服务
  • wordpress发布图片错位站长网站优化公司
  • wordpress生成静态 mip武汉seo服务外包
  • 蚌埠做网站公司百度首页纯净版
  • 如何查询网站服务器地址成品短视频网站源码搭建
  • 邯郸网站推广怎么做品牌网站建设哪家好
  • 了解网站开发的一般过程佛山优化网站关键词
  • 做网站方面新闻近期大事件
  • php做网站流程电商数据网站
  • 黄骅港开发区seo推广优化服务
  • 信阳制作网站ihanshi足球排名世界排名
  • 婚恋网站 没法做如何注册百度账号
  • 做仿牌网站被封搜索引擎优化的方式
  • 澄海网站建设微博今日热搜榜
  • 厦门网站建设服务找客户的软件有哪些
  • 杭州网站建设 seoseo技巧seo排名优化
  • 做网站备案不少天成都专门做网站的公司
  • 中央调查甘肃疫情最新消息谷歌seo搜索引擎下载
  • 赤峰做网站seo推广软件下载