码迷,mamicode.com
首页 > 其他好文 > 详细

从上到下打印二叉树 III

时间:2020-07-18 21:52:24      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:treenode   clear   level   link   com   ini   lis   linked   eve   

技术图片

题解:层次遍历的基础上加个计数器,偶数层得到的结果反转一下

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
if(root == null) return new ArrayList<>();
    List<List<Integer>> res = new ArrayList<>();
    Queue<TreeNode> q = new LinkedList<>();
    int cnt = 0;
    q.add(root);
    while(true){
          List<Integer> list = new ArrayList<>();//定义到外面之后用clear会出错
          int size = q.size();
          cnt++;
          for(int i=0;i<size;i++){
            TreeNode t = q.poll();
            list.add(t.val); 
            if(t.left != null){
                q.add(t.left);
            }
            if(t.right != null){
                q.add(t.right);
            }
      }
      if(cnt % 2 == 0){
          Collections.reverse(list);
      } 
      res.add(list);  
      if(q.size() == 0) break;  
     
    }
    return res;
    }
}

技术图片

从上到下打印二叉树 III

标签:treenode   clear   level   link   com   ini   lis   linked   eve   

原文地址:https://www.cnblogs.com/cstdio1/p/13336868.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!