91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-02 21:18:15 來源:網絡 閱讀:850 作者:小止1995 欄目:編程語言

判斷二叉樹是否為完全二叉樹。完全二叉樹的定義是,前n-1層都是滿的,第n層如有空缺,則是缺在右邊,即第n層的最右邊的節點,它的左邊是滿的,右邊是空的。

這個問題的描述已經提示了解法,采用廣度優先遍歷,從根節點開始,入隊列,如果隊列不為空,循環。遇到第一個沒有左兒子或者右兒子的節點,設置標志位,如果之后再遇到有左/右兒子的節點,那么這不是一顆完全二叉樹。

這個方法需要遍歷整棵樹,復雜度為O(N),N為節點的總數。



#include<iostream>
#include<queue>
using namespace std;
bool leftMost =false;
queue<Node*> q;
bool ProcessChild(Node* node)
{
	if(node)
	{
		if(!leftMost)
		{
			q.push_back(node);
		}
		else
			return false;
	}
	else
		leftMost=true;
	return true;
}
bool IsCompleteBinaryTree(Node* root)//層序遍歷 
{
	if(root==NULL)
		return true;
	q.push_back(root);
	while(!q.empty())
	{
		Node* node=q.pop();
		if (!ProcessChild(node->left))  
            return false;  
  
        //處理右節點  
        if (!ProcessChild(node->right))  
            return false;  
	}
	return true;

}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

元朗区| 西城区| 新乐市| 泰和县| 漳平市| 大名县| 天水市| 两当县| 浦县| 嘉义县| 临高县| 太仆寺旗| 陆良县| 呼图壁县| 大安市| 广州市| 和田市| 迁安市| 浙江省| 五河县| 鸡东县| 北票市| 黎城县| 南宫市| 威信县| 边坝县| 漯河市| 枣强县| 连南| 年辖:市辖区| 汉川市| 永和县| 宜州市| 绍兴县| 安岳县| 开化县| 张家界市| 绥棱县| 安乡县| 尼勒克县| 古田县|