北京有什么网上推广的网站吗,全球网络营销公司排行榜,国家商标查询入口,在什么网站上做外贸给定一个二叉树#xff0c;返回其节点值的锯齿形层序遍历。#xff08;即先从左往右#xff0c;再从右往左进行下一层遍历#xff0c;以此类推#xff0c;层与层之间交替进行#xff09;。例如#xff1a;
给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7
返回…给定一个二叉树返回其节点值的锯齿形层序遍历。即先从左往右再从右往左进行下一层遍历以此类推层与层之间交替进行。例如
给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7
返回锯齿形层序遍历如下[[3],[20,9],[15,7]
]
代码
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/
class Solution {public ListListInteger zigzagLevelOrder(TreeNode root) {ListListInteger resnew ArrayList(); if(rootnull) return res;QueueTreeNode queuenew LinkedList();//使用队列实现层序遍历queue.add(root);int level0;while (!queue.isEmpty()){ListInteger listnew ArrayList();int sizequeue.size();for(int i0;isize;i)//将同一层节点全部出队将下一层节点入队{TreeNode treeNodequeue.poll();list.add(treeNode.val);if(treeNode.left!null) queue.add(treeNode.left);if(treeNode.right!null) queue.add(treeNode.right);}if((level)%21) Collections.reverse(list);//奇数层的逆转res.add(list);}return res;}
}