题目描述

思路
- 先递归1找t的root在s中值相同的节点root2
- 递归2判断root和root2是不是相同的树
代码
class Solution {
public boolean isSubtree(TreeNode root, TreeNode subRoot) {
if (root == null) {
return false;
}
if (root.val == subRoot.val && isSame(root, subRoot)) {
return true;
} else {
return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot);
}
}
public boolean isSame(TreeNode root, TreeNode subRoot) {
if (root == null && subRoot == null) {
return true;
}
if (root == null || subRoot == null) {
return false;
}
if (root.val == subRoot.val) {
return isSame(root.left, subRoot.left)
&& isSame(root.right, subRoot.right);
} else {
return false;
}
}
}