欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

java語言

判斷二叉樹是否為完全二叉樹的實(shí)例

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

判斷二叉樹是否為完全二叉樹的實(shí)例

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

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

C++二叉樹的鏡像實(shí)例06-01

C語言中二叉樹的鏈?zhǔn)酱鎯?shí)例分析04-22

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

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

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

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

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

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

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