剑指 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);
    }
}
上一篇下一篇

猜你喜欢

热点阅读