执行用时 :12 ms, 在所有 Java 提交中击败了88.10%的用户

内存消耗 :39.3 MB, 在所有 Java 提交中击败了96.40%的用户

 1 boolean ans = false;
 2
 3     public boolean isSubtree(TreeNode s, TreeNode t) {
 4         if (t == null) return true;
 5         if (s == null) return false;
 6         dfs(s, t);
 7         return ans;
 8     }
 9
10     void dfs(TreeNode s, TreeNode t) {
11         if (s.val == t.val) {
12             if (check(s, t)) {
13                 ans = true;
14                 return;
15             }
16         }
17         if (s.left != null) dfs(s.left, t);
18         if (s.right != null) dfs(s.right, t);
19     }
20
21     boolean check(TreeNode s, TreeNode t) {
22         if (s == null && t == null) return true;
23         if (s == null || t == null) return false;
24         if (s.val == t.val) {
25             return check(s.left, t.left) && check(s.right, t.right);
26         }
27         return false;
28     }
 
 
 
 
 
 
 
 
 
 
 
 
01-16 17:51