国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【劍指offer】面試題18:輸入兩顆二叉樹A和B,判斷B是不是A的子結構?

2019-11-06 07:19:10
字體:
來源:轉載
供稿:網友

二叉樹的定義:

struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_PRight;};

思路: 1.遍歷兩個二叉樹,分別判斷其的根節點,左右孩子的值是否相等 2.若根節點值相等,但其左右孩子值不相等,我們需要條跳到根節點上重新進行判斷 //遞歸來說思路比較清晰,我們用遞歸來解決這個問題

bool HasSubtree(BinaryTreeNode * pRoot1, BinaryTreeNode* pRoot2){ bool result = false; if (pRoot1 != NULL &&pRoot2 != NULL) { if (pRoot1->m_nValue == pRoot2->m_nValue) { result = DoesTree1HaveTree2(pRoot1, pRoot2); } if (!result) { result = HasSubtree(pRoot1->m_pLeft, pRoot2); } if (!result) { result = HasSubtree(pRoot1->m_pRight, pRoot2); } } return result;}//判斷樹1是否有樹2//遞歸函數肯定要有出口bool DoesTree1HaveTree2(BinaryTreeNode* pRoot1, BinaryTreeNode* pRoot2){ if (pRoot1 == NULL) { return false; } if (pRoot2 == NULL) { return true; } if (pRoot1->m_nValue != pRoot2->m_nValue) { return false; } return DoesTree1HaveTree2(pRoot1->m_pLeft, pRoot2->m_pLeft) && DoesTree1HaveTree2(pRoot1-> m_pRight, pRoot2->m_pRight);//判斷左右子樹是否相等}
上一篇:Django開發步驟

下一篇:1002.A + B Problem II

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广宁县| 方城县| 湟中县| 绥化市| 吴堡县| 雅安市| 额尔古纳市| 南宁市| 葵青区| 阳春市| 靖江市| 两当县| 鹤壁市| 巴林右旗| 揭东县| 南康市| 吴桥县| 渭源县| 新邵县| 蒙城县| 鹤庆县| 泰宁县| 油尖旺区| 台南县| 两当县| 柞水县| 唐河县| 扬州市| 西乌| 泸溪县| 苍梧县| 永新县| 宣武区| 革吉县| 当雄县| 木兰县| 新泰市| 通城县| 乌海市| 武隆县| 金湖县|