CS-Notes全部笔记在阅读器中打开

26. 树的子结构

题目链接

Leetcode

题目描述

题目描述的配图

解题思路

分两步:

B 为空树时,按题意不是任何树的子结构,直接返回 false。

public boolean isSubStructure(TreeNode A, TreeNode B) {
    if (A == null || B == null)
        return false;
    return isSubtreeWithRoot(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B);
}

private boolean isSubtreeWithRoot(TreeNode root1, TreeNode root2) {
    if (root2 == null)
        return true;
    if (root1 == null)
        return false;
    if (root1.val != root2.val)
        return false;
    return isSubtreeWithRoot(root1.left, root2.left) && isSubtreeWithRoot(root1.right, root2.right);
}

在阅读器中可以用目录和搜索、切换深色模式、练习这篇笔记中的面试题:打开《26. 树的子结构》