image.png
image.png
解法
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public boolean isSubStructure(TreeNode A, TreeNode B) {
if (A != null && B != null) {
// 挨个去试,简化为比较以A的当前节点比较两者是否重合
return recur(A, B) || isSubStructure(A.left, B)
|| isSubStructure(A.right, B);
} else {
return false;
}
}
private boolean recur(TreeNode A, TreeNode B) {
if (B == null) {
return true;
}
if (A == null || A.val != B.val) {
return false;
}
return recur(A.left, B.left) && recur(A.right, B.right);
}
}