/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isSubStructure(TreeNode A, TreeNode B) {
if(B==null || A==null) return false;
if(isPartSame(A,B))
return true;
return isSubStructure(A.left,B)||isSubStructure(A.right,B);
}
public boolean isPartSame(TreeNode A, TreeNode B){
if(B==null) return true;
if(A==null) return false;
if(A.val==B.val)
return isPartSame(A.left,B.left) && isPartSame(A.right,B.right);
else return false;
}
}
参考思路清晰博客链接: