証明安全ツリーを分析すると、別のツリー下部構造を提供していません

二つのバイナリ入力A、Bは、BはAさんを下部ではないと判断されます。(詩:私たちは、空のツリーは任意のサブ構造ツリーではありません同意しました)

1  / * 
2  構造体のTreeNode {
 3      int型のval;
4      構造体のTreeNode *左;
5      右側の構造体のTreeNode *;
6      ツリーノード(int型X):
 7              左のval(X)、(NULL)、右(NULL){
 8      }
 9  }。* / 
10  クラスソリューション{
 11  公共12      ブール HasSubtree(ツリーノード* pRoot1、ツリーノード* pRoot2)
 13      {
 14          であれば(pRoot1 ||!pRoot2)
 15              リターン 16          BOOLANS = ;
17          であれば(pRoot1->ヴァル== pRoot2->ヴァル)ANS = is_subTree(pRoot1、pRoot2)。
18          もし(!ANS)ANS = HasSubtree(pRoot1-> 左、pRoot2)。
19          もし(!ANS)ANS = HasSubtree(pRoot1-> 右、pRoot2)。
20の         リターンANS;
21      }
 22      ブール is_subTree(ツリーノード* pRoot1、ツリーノード* pRoot2){
 23          場合(pRoot2!)を返す 24          もし(!pRoot1)が返す 25の         ブール ANS = 26          もし(!pRoot1->ヴァル= pRoot2-> val)でANS = ;
27          であれば(ANS)ANS = is_subTree(pRoot1->左、pRoot2-> 左)。
28          であれば(ANS)ANS = is_subTree(pRoot1->右、pRoot2-> 右)。
29の         リターンANS;
30      }
 31 }。

 

おすすめ

転載: www.cnblogs.com/--lr/p/11361512.html