二叉樹的左視圖

static void LeftView(TreeNode node) {
        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        queue.offer(node);
        //設置 size 和 child 兩個標記,child在循環中會變,size不會變,作爲循環條件
        //第一層只有根節點1個,所以size = 1
        int size = 1;
        //記錄孩子數
        int child;
        while (!queue.isEmpty()) {
            //初始化孩子數爲 0
            child = 0;
            for (int i = 0; i < size; i++) {
                TreeNode node1 = queue.poll();
                // i = 0,說明是該層第一個結點
                if (i == 0) {
                    System.out.println(node1.val);
                }
                if (node1.left != null) {
                    queue.offer(node1.left);
                    child++;
                }
                if (node1.right != null) {
                    queue.offer(node1.right);
                    child++;
                }
            }
            size = child;
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章