<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            java語言

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

            時間:2025-02-08 00:00:59 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;
             
              }
             
              }
             
              感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

            【判斷二叉樹是否為完全二叉樹的實例】相關文章:

            C++二叉樹的鏡像實例06-01

            C語言中二叉樹的鏈式存儲實例分析04-22

            php如何實現的二叉樹遍歷(示例)02-07

            PHP如何判斷數組是否為空07-26

            判斷PHP數組是否為空的代碼05-27

            PHP判斷表達式中括號是否匹配的簡單實例05-31

            C語言數據結構二叉樹簡單應用05-10

            c語言版本二叉樹基本操作示例07-28

            C語言中計算二叉樹寬度的方式06-12

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院