中国建设工程招投网站,wordpress调用图标,官网建设银行,优秀的网站建设公司排名给定一个二叉树#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())//层序遍历{int sizequeue.size();level;//层数ArrayListInteger hrnew ArrayList();for(int i0;isize;i){TreeNode tempqueue.poll();hr.add(temp.val);if(temp.left!null) queue.add(temp.left);if(temp.right!null) queue.add(temp.right);}if((level1)0) Collections.reverse(hr);//如果是偶数层则逆转res.add(hr);}return res;}
}