马蜂窝网站建设目的,免费的seo网站下载,网站定制价格,酒店电子商务网站建设流程给你二叉树的根节点 root #xff0c;返回其节点值的 锯齿形层序遍历 。#xff08;即先从左往右#xff0c;再从右往左进行下一层遍历#xff0c;以此类推#xff0c;层与层之间交替进行#xff09; 输入#xff1a;root [3,9,20,null,null,15,7]
输出#xff1a;[[3… 给你二叉树的根节点 root 返回其节点值的 锯齿形层序遍历 。即先从左往右再从右往左进行下一层遍历以此类推层与层之间交替进行 输入root [3,9,20,null,null,15,7]
输出[[3],[20,9],[15,7]]大家一定对树的层序遍历已经能够耳熟能详了吧这道题其实就在二叉树的层序遍历的基础上对它的结果进行了一点点的修改 通过大家的仔细观察不难发现是将结果集中的索引为奇数的数组进行了一次翻转我们就可以利用模拟它让做什么我们就做什么的方法进行解决(树的程层序遍历是一定要会的最好是可以进行默写甚至是进行手撕) public ListListInteger zigzagLevelOrder(TreeNode root) {ListListInteger listnew ArrayList();if(rootnull){return list;}Queuepair queuenew LinkedList();queue.offer(new pair(root,0));while(!queue.isEmpty()){pair pairqueue.poll();TreeNode nodepair.node;int levelpair.level;if(list.size()level){list.add(new ArrayList());}ListInteger itemlist.get(level);item.add(node.val);if(node.left!null){queue.offer(new pair(node.left,level1));}if(node.right!null){queue.offer(new pair(node.right,level1));}}return list;}public class pair{private TreeNode node;private Integer level;public pair(TreeNode node,Integer level){this.levellevel;this.nodenode;}}
接下来我们对其结果数组进行操作 for (int i 0; i list.size(); i) {if(i%21){Collections.reverse(list.get(i));} 这样的这道题就完美的结束了一般读题的时候都想想可以用我们所熟悉的数据结构或者是模板去以出发点去进行思考这样的话可以事半功倍