精品国产一区二区三 , 亚洲综合五月 , 俄罗斯特级高清毛片免费 , 激情福利,久久久日本,欧美一三区,欧美黄色大片久久

java語言

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

時間:2025-02-08 00:00:59 java語言 我要投稿
  • 相關(guān)推薦

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

  完全二叉樹是指除了最后一層之外,其他每一層的結(jié)點數(shù)都是滿的,今天百分網(wǎng)小編為大家整理的判斷二叉樹是否為完全二叉樹的實例,僅供學(xué)習(xí)參考,歡迎大家閱讀瀏覽!
 
  完全二叉樹特點
 
  完全二叉樹是指除了最后一層之外,其他每一層的結(jié)點數(shù)都是滿的。最后一層如果也滿了,是一顆滿二叉樹,也是完全二叉樹。最后一層如果不滿,缺少的結(jié)點也全部的集中在左邊,那也是一顆完全二叉樹。
 
  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; // 葉子結(jié)點
 
  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)) {
 
  // 如果之前層遍歷的結(jié)點沒有右孩子,且當(dāng)前的結(jié)點有左或右孩子,直接返回false
 
  // 如果當(dāng)前結(jié)點有右孩子卻沒有左孩子,直接返回false
 
  return false;
 
  }
 
  if (left != null) {
 
  queue.offer(root.left);
 
  }
 
  if (right != null) {
 
  queue.offer(root.right);
 
  }else {
 
  leaf = false; // 如果當(dāng)前結(jié)點沒有右孩子,那么之后層遍歷到的結(jié)點必須為葉子結(jié)點
 
  }
 
  }
 
  return true;
 
  }
 
  }
 
  感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

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

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

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

PHP如何判斷數(shù)組是否為空07-26

判斷PHP數(shù)組是否為空的代碼05-27

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

C語言數(shù)據(jù)結(jié)構(gòu)二叉樹簡單應(yīng)用05-10

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

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