26. 树的子结构
思路
不知道。。看大佬的题解
流程:
- 先判断B是不是以A节点为根节点的一个子树
如果不是,判断B是否是A左右子树的一个子结构 - isSubTree(Ta, Tb)
判断Tb是否是以Ta为根节点的子树
class Solution {
public boolean isSubStructure(TreeNode A, TreeNode B) {
// 先判断特殊情况
if(A == null || B == null){
return false;
}
// 判断是否是以A为根节点的一个子树
if(isSubTree(A, B)){
return true;
}
if(isSubStructure(A.left, B) || isSubStructure(A.right, B)){
return true;
}
return false;
}
public boolean isSubTree(TreeNode Ta, TreeNode Tb){
// 判断一下B的节点是不是已经检查完了
if(Tb == null){
return true;
}
if(Ta == null){
return false;
}
if(Ta.val != Tb.val){
return false;
}
return isSubTree(Ta.left, Tb.left) && isSubTree(Ta.right, Tb.right);
}
}
标签:return,isSubTree,算法,回溯,false,null,Tb,leetcode,Ta
From: https://www.cnblogs.com/vincy9501/p/17008689.html