文章目录 1. 题目2. 思路(1) 递归 3. 代码 1. 题目 2. 思路 (1) 递归 利用一个递归函数前序遍历二叉树A,检查每一个结点与二叉树B是否具有相同的结构。利用另一个递归函数同时前序遍历二叉树A和B,检查二叉树A与二叉树B是否具有相同的结构。 3. 代码 public class Test { public static void main(String[] args) { } } class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } class Solution { public boolean isSubStructure(TreeNode A, TreeNode B) { if (A == null || B == null) { return false; } return dfs(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B); } private boolean dfs(TreeNode a, TreeNode b) { if (b == null) { return true; } if (a == null || a.val != b.val) { return false; } return dfs(a.left, b.left) && dfs(a.right, b.right); } }