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

    题目链接

    题目大意:二叉树层序z字型的方式打印输出,即奇数行正常打印,偶数行倒序打印。例子如下:

    法一:利用102的层序遍历,然后用Collections.reverse(list),在偶数行的时候将list翻转即可。代码如下(耗时2ms):

     1     public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
     2         List<List<Integer>> res = new ArrayList<List<Integer>>();
     3         if(root == null) {
     4             return res;
     5         }
     6         Queue<TreeNode> q = new LinkedList<TreeNode>();
     7         q.offer(root);
     8         int level = 0;
     9         while(!q.isEmpty()) {
    10             level++;
    11             int cnt = q.size();
    12             List<Integer> listLevel = new ArrayList<Integer>();
    13             for(int i = 0; i < cnt; i++) {
    14                 TreeNode tmp = q.poll();
    15                 listLevel.add(tmp.val);
    16                 if(tmp.left != null) {
    17                     q.offer(tmp.left);
    18                 }
    19                 if(tmp.right != null) {
    20                     q.offer(tmp.right);
    21                 }
    22             }
    23             //对list进行翻转
    24             if(level % 2 == 0)
    25                 Collections.reverse(listLevel);
    26             res.add(new ArrayList<Integer>(listLevel));
    27         }
    28         return res;
    29     }
    View Code
  • 相关阅读:
    vue-cli构建项目 npm run build后应该怎么运行在本地查看效果
    解析JSON数组
    Lambda
    keytool不是内部或外部命令
    XML布局
    HTML5本地存储IndexedDB基础使用
    Vue 2.0基础
    cs231n__3. LostFunction
    cs231n__2. K-nearest Neighbors
    week_Last
  • 原文地址:https://www.cnblogs.com/cing/p/9008224.html
Copyright © 2011-2022 走看看