二叉樹的層序遍歷

實現二叉樹的層序遍歷我們藉助隊列來實現,這個是用Java代碼實現的,可以通過:
Queue queue = new LinkedList<>();//定義隊列
直接來創建一個隊列;
隊列中的方法:
在這裏插入圖片描述我是通過迭代的方法實現:先得到一個根節點;判斷是否爲null;
不爲空的基礎上 ,將root添加到隊列中,然後進行迭代,
將隊列首元素刪除並返回,加入到list集合中,然後將root的左節點和右節點加入隊列(在不爲空的前提下),然後以此類推,就完成了二叉樹的層序遍歷。

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

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

    //二叉樹 層序遍歷
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root){
        ArrayList<Integer> ret = new ArrayList<>();
        if (root==null) {
            return ret;
        }
        Queue<TreeNode> queue = new LinkedList<>();//定義隊列
        queue.offer(root);
        while (!queue.isEmpty()) {
            TreeNode node = queue.poll();
            ret.add(node.val);
            if (node.left != null) queue.add(node.left);
            if (node.right != null) queue.add(node.right);
        }
        return ret;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章