国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

判斷二叉樹是否為完全二叉樹的實例

2020-01-31 16:50:15
字體:
來源:轉載
供稿:網友

完全二叉樹特點

完全二叉樹是指除了最后一層之外,其他每一層的結點數都是滿的。最后一層如果也滿了,是一顆滿二叉樹,也是完全二叉樹。最后一層如果不滿,缺少的結點也全部的集中在左邊,那也是一顆完全二叉樹。

判斷一棵二叉樹是否為完全二叉樹

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;  }}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 搜索| 融水| 清徐县| 昭平县| 满洲里市| 左贡县| 海阳市| 龙门县| 洛扎县| 乌兰察布市| 集贤县| 华容县| 名山县| 南川市| 新丰县| 铜陵市| 牡丹江市| 吉林省| 芜湖市| 比如县| 南雄市| 高雄市| 宜兴市| 武汉市| 普兰县| 星座| 东乌珠穆沁旗| 藁城市| 阿荣旗| 四子王旗| 阜城县| 康平县| 昭通市| 湟源县| 绵阳市| 云霄县| 保康县| 元阳县| 百色市| 冕宁县| 临清市|