剑指 Offer 第26题:树的子结构
2022-07-18 本文已影响0人
放开那个BUG
1、前言
题目描述2、思路
很朴素的思路,就是先比较 A 和 B 节点,然后再比 A.left 和 B、以及 A.right 和 B。
3、代码
class Solution {
public boolean isSubStructure(TreeNode A, TreeNode B) {
if(A == null || B == null){
return A == B;
}
return dfs1(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B);
}
private boolean dfs1(TreeNode A, TreeNode B){
if(B == null){
return true;
}
if(A == null){
return A == B;
}
if(A.val != B.val){
return false;
}
return dfs1(A.left, B.left) && dfs1(A.right, B.right);
}
}