給定乙個二叉樹,確定它是否是乙個完全二叉樹。
若設二叉樹的深度為 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個結點的二叉樹稱為滿二叉樹。說明 除葉子結點外的所有結點均有兩個子結點。所有葉子結點必須在同一層上。完全二叉樹 若設二叉樹的深度...