国产探花免费观看_亚洲丰满少妇自慰呻吟_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;  }}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泸溪县| 高密市| 曲水县| 安图县| 万荣县| 孟津县| 应城市| 沂南县| 本溪市| 玛多县| 桐乡市| 临颍县| 舒城县| 潞西市| 乾安县| 峨眉山市| 巴东县| 博野县| 温州市| 邵阳县| 谷城县| 海安县| 关岭| 理塘县| 福安市| 荃湾区| 和田市| 株洲县| 商都县| 周口市| 临夏县| 伊金霍洛旗| 鄂尔多斯市| 花莲市| 莲花县| 崇义县| 包头市| 顺平县| 柳江县| 宣恩县| 阳东县|