題目:

創新互聯是一家網站設計公司,集創意、互聯網應用、軟件技術為一體的創意網站建設服務商,主營產品:成都響應式網站建設公司、高端網站設計、全網整合營銷推廣。我們專注企業品牌在網站中的整體樹立,網絡互動的體驗,以及在手機等移動端的優質呈現。成都做網站、成都網站制作、成都外貿網站建設、移動互聯產品、網絡運營、VI設計、云產品.運維為核心業務。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞析悅目的作品,網站的價值服務。
輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構)
思路:
//1、遍歷二叉樹pRoot1,找到和pRoot2根結點相等的結點 //2、在對這個節點進行判斷,是否其內部和PRoot2的結構完全相等
代碼:
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
public:
bool JudgeSub(TreeNode *pRoot1,TreeNode *pRoot2)
{
//一定要先判斷PRoot2,在判斷proot1
if(pRoot2==NULL)
{
return true;
}
if(pRoot1==NULL)
{
return false;
}
if(pRoot1->val==pRoot2->val)
{
return JudgeSub(pRoot1->left,pRoot2->left)&&JudgeSub(pRoot1->right,pRoot2->right);
}
else
{
return false;
}
}
//1、遍歷二叉樹pRoot1,找到和pRoot2根結點相等的結點
//2、在對這個節點進行判斷,是否其內部和PRoot2的結構完全相等
bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2)
{
bool result=false;
if(pRoot1!=NULL&&pRoot2!=NULL)
{
if(pRoot1->val==pRoot2->val)
{
result=JudgeSub(pRoot1,pRoot2);
}
if(!result)
{
result=HasSubtree(pRoot1->left,pRoot2)||HasSubtree(pRoot1->right,pRoot2);
}
}
return result;
}
};
本文標題:劍指offer之面試題18:樹的子結構
當前鏈接:http://www.yijiale78.com/article4/gjhdie.html
成都網站建設公司_創新互聯,為您提供ChatGPT、商城網站、電子商務、微信小程序、外貿建站、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯