真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

判斷二叉樹是否為完全二叉樹-創(chuàng)新互聯(lián)

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

河東網(wǎng)站建設公司創(chuàng)新互聯(lián)建站,河東網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為河東1000+提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的河東做網(wǎng)站的公司定做!

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

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

#include
#include
using namespace std;
bool leftMost =false;
queue 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;  
  
        //處理右節(jié)點  
        if (!ProcessChild(node->right))  
            return false;  
	}
	return true;

}

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


當前標題:判斷二叉樹是否為完全二叉樹-創(chuàng)新互聯(lián)
鏈接URL:http://weahome.cn/article/dsescd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部