zoukankan      html  css  js  c++  java
  • 剑指 Offer 32

    import java.util.ArrayList;
    import java.util.Queue;
    import java.util.LinkedList;
    /**
    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
    
        public TreeNode(int val) {
            this.val = val;
    
        }
    
    }
    */
    public class Solution {
        public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
            //定义queue 存放TreeNode
            Queue<TreeNode> queue = new LinkedList<>();
            //结果集res
            ArrayList<Integer>  res = new ArrayList<>();
            if(root == null) return res;
            //根节点入队
            queue.offer(root);
            //遍历队列
            while(!queue.isEmpty()){
                TreeNode node = queue.poll();
                res.add(node.val);
                if(node.left != null){
                    queue.offer(node.left);
                }
                if(node.right != null){
                    queue.offer(node.right);
                }
            }
            return res;
        }
    }

    在Java中Queue是和List、Map同等级别的接口,LinkedList中也实现了Queue接口,该接口中的主要函数有:

    1. 容量不够或队列为空时不会抛异常:offer(添加队尾元素)、peek(访问队头元素)、poll(访问队头元素并移除)
    2. 容量不够或队列为空时抛异常:add、element(访问队列元素)、remove(访问队头元素并移除)
  • 相关阅读:
    Notepad++技巧
    LinuxTips从命令行到脚本
    Linux任务前后台的切换
    win7 中使用NFS共享
    Python实例31[批量对目录下文件重命名]
    rsync 的核心算法
    linux/unix设计思想
    linux进程的状态
    Perforce查看workspace sync到的changlist
    python类库26[sqlite]
  • 原文地址:https://www.cnblogs.com/peanut-zh/p/14138565.html
Copyright © 2011-2022 走看看