王道5 3 7完全二叉樹的判定

2021-10-07 22:12:25 字數 878 閱讀 4986

給定乙個二叉樹,確定它是否是乙個完全二叉樹。

若設二叉樹的深度為 h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹。(注:第 h 層可能包含 1~ 2h 個節點。)

示例 1:

輸入:[1,2,3,4,5,6] 輸出:true 解釋:最後一層前的每一層都是滿的(即,結點值為 和 的兩層),且最後一層中的所有結點()都盡可能地向左。

根據層序遍歷,設定flag標誌是否出現過null,如果出現null,設定flag為1.如果存在當前節點,判斷當前flag如果是1,就直接返回false,不是就把他的左右節點加入(無論他的左右節點是否存在),接著層序。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

queue> queue1;

queue1.

push

(root)

;int flag=0;

// 是否出現null

while

(!queue1.

empty()

) queue1.

push

(cur-

>left)

; queue1.

push

(cur-

>right)

; queue1.

pop();

}else

}return

true;}

};

完全二叉樹的判定

完全二叉樹的判定 對二叉樹進行層次遍歷,在遍歷過程中對每乙個結點進行檢查 1 如果當前結點沒有右子樹,則剩下的全部結點必須既沒有左子樹,又沒有右子樹 2 如果當前結點有右子樹,則它必須也有左子樹.include includetypedef struct bitnode bitree typedef...

完全二叉樹的判定

2 實現 二叉樹定義 typedef struct btnode btnode typedef struct bt bt 佇列定義 typedef struct queue queue 函式定義 void premaketree bt bt btnode creatbtree btnode r 以深...

二叉樹,完全二叉樹,滿二叉樹

二叉樹 是n n 0 個結點的有限集合,它或者是空樹 n 0 或者是由乙個根結點及兩顆互不相交的 分別稱為左子樹和右子樹的二叉樹所組成。滿二叉樹 一顆深度為k且有2 k 1個結點的二叉樹稱為滿二叉樹。說明 除葉子結點外的所有結點均有兩個子結點。所有葉子結點必須在同一層上。完全二叉樹 若設二叉樹的深度...