从上往下打印二叉树

题目

牛客网

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

解题思路

  1. 层次遍历,通过队列进行辅助遍历

    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
    ArrayList<Integer> res = new ArrayList<>();
    LinkedList<TreeNode> nodeQueue = new LinkedList<>();
    
    if (root == null) {
        return res;
    }
    
    nodeQueue.addLast(root);
    
    while (!nodeQueue.isEmpty()) {
        TreeNode node = nodeQueue.pollFirst();
        if (node == null) {
            continue;
        }
    
        nodeQueue.addLast(node.left);
        nodeQueue.addLast(node.right);
    
        res.add(node.val);
    }
    
    return res;
    }