树树的子结构
Posted ocpc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树树的子结构相关的知识,希望对你有一定的参考价值。
题目:
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)。
解答:
1 class Solution { 2 bool isSubtree(TreeNode* pRootA, TreeNode* pRootB) 3 { 4 if (pRootB == NULL) 5 { 6 return true; 7 } 8 if (pRootA == NULL) 9 { 10 return false; 11 } 12 if (pRootB->val == pRootA->val) 13 { 14 return isSubtree(pRootA->left, pRootB->left) 15 && isSubtree(pRootA->right, pRootB->right); 16 } 17 else 18 { 19 return false; 20 } 21 } 22 public: 23 bool HasSubtree(TreeNode* pRootA, TreeNode* pRootB) 24 { 25 if (pRootA == NULL || pRootB == NULL) 26 { 27 return false; 28 } 29 return isSubtree(pRootA, pRootB) || 30 HasSubtree(pRootA->left, pRootB) || 31 HasSubtree(pRootA->right, pRootB); 32 } 33 };
以上是关于树树的子结构的主要内容,如果未能解决你的问题,请参考以下文章