• 剑指 Offer 32


    List<List<Integer>> res = new ArrayList<>();
        public List<List<Integer>> levelOrder(TreeNode root) {
            if(root == null) return res;
            Deque<TreeNode> queue = new ArrayDeque<>();
            queue.add(root);
            level(0, queue);
            return res;
        }
    
        private void level(int level,Deque<TreeNode> queue) {
            int size = queue.size();
            if(size == 0) return;
            if(level%2==0){
                List<Integer> list = new ArrayList<>();
                while (size>0){
                    TreeNode node = queue.pollFirst();
                    size--;
                    list.add(node.val);
                    if(node.left!=null) queue.addLast(node.left);
                    if(node.right!=null) queue.addLast(node.right);
                }
                res.add(list);
                level++;
                level(level,queue);
            }else{
                List<Integer> list = new ArrayList<>();
                while (size>0){
                    TreeNode node = queue.pollLast();
                    size--;
                    list.add(node.val);
                    if(node.right!=null) queue.addFirst(node.right);
                    if(node.left!=null) queue.addFirst(node.left);
                }
                res.add(list);
                level++;
                level(level,queue);
            }
        }

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    css知识点
    javascript 中闭包
    javascript 继承方法总结
    css滚动滚轮事件
    关于闭包的总结
    xpth xslt
    好的js函数
    自动化测试实施(4)
    自动化测试实施(5)
    自动化测试实施(3)
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/13520887.html
Copyright © 2020-2023  润新知