From 140f8b7987859bc7a2e6109aae63d1823d92e615 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Fri, 30 Oct 2026 20:18:01 +0800 Subject: [PATCH] =?UTF-8?q?Update=2026.=20=E6=A0=91=E7=9A=84=E5=AD=90?= =?UTF-8?q?=E7=BB=93=E6=9E=84.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充解题思路说明,阐明遍历起点匹配与递归比较两树的判定步骤及边界条件。 --- notes/26. 树的子结构.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/notes/26. 树的子结构.md b/notes/26. 树的子结构.md index 542e5772..e31e6064 100644 --- a/notes/26. 树的子结构.md +++ b/notes/26. 树的子结构.md @@ -10,6 +10,13 @@ ## 解题思路 +分两步: + +- isSubStructure 遍历 A 的每个节点,把它当作可能的起点,A 的根、左子树、右子树中任意一处匹配即可; +- isSubtreeWithRoot 从起点开始,同时向下比较两棵树:B 走到 null 说明 B 的这一支已经全部匹配,返回 true;A 走到 null 或值不同则返回 false。 + +B 为空树时,按题意不是任何树的子结构,直接返回 false。 + ```java public boolean isSubStructure(TreeNode A, TreeNode B) { if (A == null || B == null)