题目来源
题目描述
题目解析
思路:
一个树是另一个树的子树 则
- 要么这两个树相等
- 要么这个树是左树的子树
- 要么这个树hi右树的子树
/**
* 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 isSubtree(TreeNode s, TreeNode t) {
if(t == null){
return true;
}
if(s == null){
return false;
}
return isSametree(s, t) || isSubtree(s.left, t) || isSubtree(s.right, t) ;
}
public boolean isSametree(TreeNode s, TreeNode t){
if(s == null && t == null){
return true;
}
if(s == null || t == null || s.val != t.val){
return false;
}
return isSametree(s.left, t.left) && isSametree(s.right, t.right);
}
}