zoukankan      html  css  js  c++  java
  • [leetcode] 103. 二叉树的锯齿形层次遍历

    103. 二叉树的锯齿形层次遍历

    按题号刷的优势体现出来了2333333

    这题实际上就是上个题102. 二叉树的层次遍历的演变,把上个题结果的偶数行list反转一下即可。。

    上题通过人数10k+,这个题才3k,我想这题不经过上题思路的引导很容易思路被带弯把

    class Solution {
        public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
            List<List<Integer>> lists = levelOrder(root);
    
            boolean flag = false;
            for (List<Integer> list : lists) {
                if (flag)
                    Collections.reverse(list);
                flag = !flag;
            }
    
            return lists;
        }
    
        public List<List<Integer>> levelOrder(TreeNode root) {
            List<List<Integer>> list = new ArrayList<>();
            if (root == null) return list;
            LinkedList<TreeNode> queue = new LinkedList<>();
            queue.offer(root);
    
            TreeNode flag = root;
            List<Integer> nowNumList = new ArrayList<>();
            list.add(nowNumList);
    
            while (!queue.isEmpty()) {
                TreeNode nowNode = queue.poll();
                nowNumList.add(nowNode.val);
    
                TreeNode sonNode = nowNode.left;
                if (sonNode != null) queue.offer(sonNode);
    
                sonNode = nowNode.right;
                if (sonNode != null) queue.offer(sonNode);
    
                if (flag == nowNode && !queue.isEmpty()) {
                    nowNumList = new ArrayList<>();
                    list.add(nowNumList);
                    flag = queue.peekLast();
                }
            }
            return list;
        }
    }
    
    
  • 相关阅读:
    FormData的使用
    数据绑定
    DOM的映射机制
    leetcode750
    leetcode135
    leetcode41
    leetcode269
    leetcode253
    leetcode42
    leetcode48
  • 原文地址:https://www.cnblogs.com/acbingo/p/9917309.html
Copyright © 2011-2022 走看看