劍指Offer:從上往下打印二叉樹

劍指Offer:從上往下打印二叉樹

題目描述

  從上往下打印出二叉樹的每個節點,同層節點從左至右打印。

題目分析

  這道題主要是隊列的應用,我們首先要了解,隊列是先進先出,我們把第一層即根節點放入隊列中,先打印的就是根節點,接着放入第二層及根節點的孩子節點,所以後打印的就是第二次的節點,接着第三層....

  這不是正好滿足題目所說的從上到下嗎,至於從左至右,我們先加入左節點,再加入右節點,就完事了!

Java題解

import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Queue;

public class Solution {
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        ArrayList<Integer> result = new ArrayList<>();
        if(root == null)
            return result;
        Queue<TreeNode> queue = new ArrayDeque();
        queue.add(root);
        while (!queue.isEmpty()){
            TreeNode node = queue.poll();
            result.add(node.val);
            if(node.left!=null)
                queue.add(node.left);
            if(node.right!=null)
                queue.add(node.right);
        }
        return result;
    }
}

/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章