樹——022從上往下打印二叉樹(二叉樹的層次遍歷)

1,問題描述

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

2,解題思路

首先構建一個輔助隊列存放二叉樹節點,那麼接下來該如何層次遍歷呢?步驟如下:

  • 將根節點添加到隊列中
  • 循環判斷隊列是否爲空,若不爲空則執行以下循環體語句:
  • 將隊列頭節點取出,再將該節點不爲空的左右子樹的根節點依次添加至隊列中,然後把該節點的值添加到列表中
  • 循環至隊列爲空,返回列表

3,源碼

import java.util.ArrayList;
/**
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) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        ArrayList<TreeNode> queue = new ArrayList<TreeNode>();
        if(root==null) return list;
        queue.add(root);
        while(!queue.isEmpty()) {
            TreeNode temp = queue.remove(0);
            if(temp.left!=null) queue.add(temp.left);
            if(temp.right!=null) queue.add(temp.right);
            list.add(temp.val);
        }
        return list;
    }
}

 

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