亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

發布時間: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

彰武县| 达日县| 易门县| 磐安县| 龙井市| 周宁县| 巴里| 纳雍县| 孝昌县| 博客| 永康市| 仁化县| 贵定县| 巴里| 屏山县| 彩票| 宁安市| 新安县| 库车县| 华阴市| 盐亭县| 堆龙德庆县| 乐山市| 贵溪市| 通州区| 晴隆县| 肥城市| 宝山区| 墨竹工卡县| 玉溪市| 阿拉善右旗| 东丰县| 景泰县| 阆中市| 扎鲁特旗| 崇左市| 秦皇岛市| 开远市| 星座| 淄博市| 大新县|