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

2018网站做外链镇海建设交通局网站首页

2018网站做外链,镇海建设交通局网站首页,帝国CMS做的淘客网站,域名进行网站备案吗103.给你二叉树的根节点 root #xff0c;返回其节点值的 锯齿形层序遍历 。#xff08;即先从左往右#xff0c;再从右往左进行下一层遍历#xff0c;以此类推#xff0c;层与层之间交替进行#xff09;。 示例 1#xff1a; 输入#xff1a;root [3,9,20,null,null,… 103.给你二叉树的根节点 root 返回其节点值的 锯齿形层序遍历 。即先从左往右再从右往左进行下一层遍历以此类推层与层之间交替进行。 示例 1 输入root [3,9,20,null,null,15,7] 输出[[3],[20,9],[15,7]] 示例 2 输入root [1] 输出[[1]] 示例 3 输入root [] 输出[] 我的原始人解法层序遍历每次处理一遍从左到右的和从右到左的遍历可以直接略过不看 public ListListInteger zigzagLevelOrder(TreeNode root) {ListListInteger res new ArrayList();if(rootnull)return res;StackTreeNode stack new Stack();stack.push(root);while(!stack.isEmpty()){ListInteger temp new ArrayList();StackTreeNode tempStack new Stack();// 从左到右遍历节点// stack 从左到右存节点下面的遍历取的时候就相当于从右到左遍历for(int istack.size();i0;i--){TreeNode node stack.pop();temp.add(node.val);if(node.left ! null)tempStack.push(node.left);if(node.right ! null)tempStack.push(node.right);}stacktempStack;tempStack new Stack();res.add(temp);temp new ArrayList();// 从右到左遍历节点因为上面是用 stack 从左到右存的// stack 从右到左存节点下一轮的遍历取的时候就相当于从左到右遍历for(int istack.size();i0;i--){TreeNode node stack.pop();temp.add(node.val);if(node.right ! null)tempStack.push(node.right);if(node.left ! null)tempStack.push(node.left);}stacktempStack;// 如果到这已经遍历完了就不用加了if(temp.size()0)res.add(temp);}return res;}他人解法1层序遍历用一个变量记录是从左到右还是从右到左存放当前层的值这样每次遍历都从左到右放节点即可具体看代码 public ListListInteger zigzagLevelOrder(TreeNode root) {ListListInteger res new ArrayList();if(rootnull)return res;boolean leftToRight true;QueueTreeNode queue new LinkedList();queue.add(root);while(!queue.isEmpty()){ListInteger temp new ArrayList();for(int iqueue.size();i0;i--){TreeNode node queue.poll();// 从左到右正常放if(leftToRight)temp.add(node.val);// 遍历节点的顺序为从左到右每次把值放首位// 这样就相当于从右到左存放了这层的结点的值else temp.add(0,node.val);if(node.left ! null)queue.add(node.left);if(node.right ! null)queue.add(node.right);}res.add(temp);// 记得下层换顺序了leftToRight !leftToRight;}return res;}他人解法2dfs其实也可以看做上面 bfs 的递归版本不过主要难在入参中的当前遍历层 level 可能想不到 level 不仅可以代替 leftToRight 判断存放节点值的顺序还能根据 level 把节点值存放到对应层的 list调用递归就相当于节点入队且遍历到了下一层 具体如下 ListListInteger res new ArrayList();public ListListInteger zigzagLevelOrder(TreeNode root) {if(rootnull)return res;dfs(root, 0);return res;}public void dfs(TreeNode root, int level){if(rootnull)return;// 如果当前层还没 list 就先建一个if(res.size() level){ListInteger levelRes new ArrayList();res.add(levelRes);}// 第几层的值就存到第几层的 listListInteger levelRes res.get(level);// 判断存放值的顺序来存放if(level%20)levelRes.add(root.val);else levelRes.add(0, root.val);// 处理下一层dfs(root.left, level1);dfs(root.right, level1);}
http://www.pierceye.com/news/782918/

相关文章:

  • 网站关键字优化地点如何用手机做网站吗
  • 中国建设银行网站签名通下载站长工具seo词语排名
  • 七牛云官网登录郑州优化网站收费标准
  • 三亚专业网站建设电商网站开发思路
  • app手机端电子商务网站功能提供网站建设课程
  • 福田皇岗社区做网站公司办公室布局效果图
  • 音乐播放网站怎么做北京终端区优化
  • 广州市建设工程交易中心网站上海畔游网络科技有限公司
  • wordpress网站好慢页面模板怎么用
  • 网站建设维护是啥意思wordpress 路径
  • 汕头网站建设报价个体工商户注册公司流程和费用
  • 网站开发学的啥36kr源码WordPress
  • 最好的免费网站空间沈阳营销型网站
  • 如何制作一个好网站网络设计报告范例
  • 邯郸做网站最好的公司彩票网站制作
  • 酒店团购的网站建设网站建设的一些原理
  • 做淘宝网站需要什么网站设置快捷键
  • 网站建设合同验收提供网站建设报
  • 湛江市建设规划局网站如何干电商
  • 东莞网站制作很好 乐云践新佛山网站建设解决方案
  • 哪个网站百度收录快海报模板网址
  • 绍兴高兴区建设网站怎么查网站制作空间有效期
  • 有没人做阿里巴巴网站维护的企业网站搭建 网络活动策划
  • 在线手机网站预览网站建设费归入长期待摊费用
  • 怎么制作个人网站企业起名
  • 做鞋子网站的域名如何拥有一个自己的网站
  • 室内设计网站资源加速器网页版
  • 一个网站可以优化多少关键词想做网络推广如何去做
  • 家装公司网站建设方案装饰公司设计用什么软件
  • 做网站与运营一般多少钱桂林象鼻山简介