zoukankan      html  css  js  c++  java
  • 103. Binary Tree Zigzag Level Order Traversal

        /*
         * 103. Binary Tree Zigzag Level Order Traversal 
         * 11.21 By Mingyang
         */
            public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
                List<List<Integer>> res = new ArrayList<List<Integer>>();
                if (root == null)
                    return res;
                LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
                queue.add(root);
                int num = 0;
                boolean reverse = false;// a flag
                while (!queue.isEmpty()) {
                    num = queue.size();
                    List<Integer> levelres = new ArrayList<Integer>();
                    for (int i = 0; i < num; i++) {
                        TreeNode node = queue.poll();
                        levelres.add(node.val);
                        if (node.left != null)
                            queue.add(node.left);
                        if (node.right != null)
                            queue.add(node.right);
                    }
                    if (reverse) {
                        Collections.reverse(levelres);
                        reverse = false;
                    } else {
                        reverse = true;
                    }
                    res.add(levelres);
                }
                return res;
            }
  • 相关阅读:
    Java EE 和 Java Web
    09-盒模型
    08-层叠性权重相同处理
    07-css的继承性和层叠性
    06-伪元素选择器
    05-伪类选择器
    04-属性选择器
    03-高级选择器
    02-css的选择器
    01-css的引入方式
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5500546.html
Copyright © 2011-2022 走看看