/** * 完全二叉樹:要麼是滿二叉樹,要麼是在滿二叉樹的基礎上,最後一層的節點是從左到右是依次新增的
* 採用按層遍歷的方式判斷是不是完全二叉樹 */
public
class
iscompletetree
public
static
boolean iscompletetree(node head)
linkedlist
queue = new linkedlist();
queue.offer(head);
node left = null
; node right = null
; boolean leaf = false
;
while (!queue.isempty())
//當檢查葉子節點狀態開啟時,但是又不是葉子節點時
if (leaf && (left != null || right != null
))
//開啟檢查葉子節點狀態
if ((left == null && right == null) || (left != null && right == null
))
if (left != null
)
if (right != null
) }
return
true
; }
public
static
class
node
}}
判斷二叉樹是不是平衡二叉樹
1.問題描述 輸入一棵二叉樹的根結點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意結點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。來自 劍指offer 2.分析 我們可以採用後續遍歷,在遍歷根結點之前就可以得到左右子樹的深度及是不是一顆平衡二叉樹。然後在根據左右子樹的深度差值來判斷這棵樹...
判斷二叉樹是不是平衡二叉樹
用後序遍歷的方式遍歷二叉樹的每乙個結點,在遍歷到乙個結點之前我們已經遍歷了它的左右子樹。只要在遍歷每個結點的時候記錄它的深度 某一結點的深度等於它到葉節點的路徑的長度 我們就可以一邊遍歷一邊判斷每個結點是不是平衡的。下面是這種思路的參考 bool isbalanced binarytreenode ...
判斷一顆二叉樹是不是完全二叉樹
類似於測序遍歷,用佇列實現 先進後出 1 如果根不為空,那麼根入隊 2 判斷佇列是否為空,不為空,則將隊頭元素出隊並儲存在臨時變數cur裡,3 判斷cur是否為空,若不為空,則將cur的左右子樹都放到佇列裡,如果子樹為空,就往佇列裡插入null。若為空,則直接停止出隊,然後看佇列裡是否還有不是nul...