扣丁學堂Java培訓告訴你如何判斷二叉樹是否為完全二叉樹
近日有小伙伴詢問扣丁學堂的咨詢老師關于二叉樹方面的問題,小編發現有不少的小伙伴不知道如何判斷二叉樹是否為完全二叉樹,現在小編就給大家分享一下扣丁學堂Java在線學習講述的判斷二叉樹是否為完全二叉樹的實例。

完全二叉樹特點
完全二叉樹是指除了最后一層之外,其他每一層的結點數都是滿的。最后一層如果也滿了,是一顆滿二叉樹,也是完全二叉樹。最后一層如果不滿,缺少的結點也全部的集中在左邊,那也是一顆完全二叉樹。
判斷一棵二叉樹是否為完全二叉樹
import java.util.*;
class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
public class CheckCompletion {
public boolean checking(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<TreeNode>();
boolean leaf = false; // 葉子結點
TreeNode left;
TreeNode right;
queue.add(root);
while (!queue.isEmpty()) {
root = queue.poll();
left = root.left;
right = root.right;
if ((leaf&&(left!=null||right!=null)) || (left==null&&right!=null)) {
// 如果之前層遍歷的結點沒有右孩子,且當前的結點有左或右孩子,直接返回false
// 如果當前結點有右孩子卻沒有左孩子,直接返回false
return false;
}
if (left != null) {
queue.offer(root.left);
}
if (right != null) {
queue.offer(root.right);
}else {
leaf = false; // 如果當前結點沒有右孩子,那么之后層遍歷到的結點必須為葉子結點
}
}
return true;
}
}以上就是扣丁學堂Java培訓小編為大家分享的如何判斷二叉樹是否為完全二叉樹,希望對小伙伴們有所幫助,想要了解更多內容的小伙伴可以登錄扣丁學堂官網咨詢,扣丁學堂是專業的Java培訓機構,不僅有專業的老師和與時俱進的課程體系,還有大量的Java視頻教程供學員觀看學習哦。扣丁學堂java技術交流群:487098661。微信號:codingbb
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。





















