@@ -42,7 +42,9 @@ public List<TreeNode> findDuplicateSubtrees(TreeNode root) {
42
42
}
43
43
44
44
private String postorder (TreeNode curr , HashMap <String , Integer > map , List <TreeNode > res ) {
45
- if (curr == null ) return "#" ;
45
+ if (curr == null ) {
46
+ return "#" ;
47
+ }
46
48
String serial = curr .val + "," + postorder (curr .left , map , res ) + "," + postorder (curr .right , map , res );
47
49
if (map .getOrDefault (serial , 0 ) == 1 ) {
48
50
res .add (curr );
@@ -63,7 +65,9 @@ public class MyOriginalSolution {
63
65
*/
64
66
public List <TreeNode > findDuplicateSubtrees (TreeNode root ) {
65
67
List <TreeNode > result = new ArrayList <>();
66
- if (root == null ) return result ;
68
+ if (root == null ) {
69
+ return result ;
70
+ }
67
71
Map <TreeNode , List <TreeNode >> map = new HashMap <>();
68
72
Queue <TreeNode > oldQueue = new LinkedList <>();
69
73
Queue <TreeNode > newQueue = new LinkedList <>();
@@ -113,21 +117,37 @@ private void findDuplicateSubtrees(TreeNode treeNode, Queue<TreeNode> newQueue,
113
117
}
114
118
115
119
private boolean isSubtree (TreeNode s , TreeNode t ) {
116
- if (s == null && t == null ) return true ;
120
+ if (s == null && t == null ) {
121
+ return true ;
122
+ }
117
123
boolean isSubTree = false ;
118
- if (s != null && t != null && s .val == t .val ) isSubTree = isSameTree (s , t );
119
- if (isSubTree ) return true ;
124
+ if (s != null && t != null && s .val == t .val ) {
125
+ isSubTree = isSameTree (s , t );
126
+ }
127
+ if (isSubTree ) {
128
+ return true ;
129
+ }
120
130
boolean isSubTreeLeft = false ;
121
- if (s .left != null ) isSubTreeLeft = isSubtree (s .left , t );
122
- if (isSubTreeLeft ) return true ;
131
+ if (s .left != null ) {
132
+ isSubTreeLeft = isSubtree (s .left , t );
133
+ }
134
+ if (isSubTreeLeft ) {
135
+ return true ;
136
+ }
123
137
boolean isSubTreeRight = false ;
124
- if (s .right != null ) isSubTreeRight = isSubtree (s .right , t );
125
- if (isSubTreeRight ) return true ;
138
+ if (s .right != null ) {
139
+ isSubTreeRight = isSubtree (s .right , t );
140
+ }
141
+ if (isSubTreeRight ) {
142
+ return true ;
143
+ }
126
144
return false ;
127
145
}
128
146
129
147
private boolean isSameTree (TreeNode p , TreeNode q ) {
130
- if (p == null || q == null ) return p == q ;
148
+ if (p == null || q == null ) {
149
+ return p == q ;
150
+ }
131
151
return p .val == q .val && isSameTree (p .left , q .left ) && isSameTree (p .right , q .right );
132
152
}
133
153
}
0 commit comments