File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change
1
+ #### 递归
2
+ ```
3
+ public boolean isSymmetric(TreeNode root) {
4
+ if (root == null)
5
+ return true;
6
+ return dfs(root.left, root.right);
7
+ }
8
+
9
+ private boolean dfs(TreeNode node1, TreeNode node2) {
10
+ if ((node1 == null && node2 == null)) {
11
+ return true;
12
+ } else if (node1 != null && node2 != null) {
13
+ if (node1.val != node2.val) {
14
+ return false;
15
+ }
16
+ } else {
17
+ return false;
18
+ }
19
+ return dfs(node1.left, node2.right) && dfs(node1.right, node2.left);
20
+ }
21
+ ```
22
+
23
+ #### 非递归
24
+ ```
25
+ public boolean isSymmetric(TreeNode root) {
26
+ Queue<TreeNode> q = new LinkedList<>();
27
+ q.add(root);
28
+ q.add(root);
29
+ while (!q.isEmpty()) {
30
+ TreeNode t1 = q.poll();
31
+ TreeNode t2 = q.poll();
32
+ if (t1 == null && t2 == null) {
33
+ continue;
34
+ }
35
+ if (t1 == null || t2 == null || t1.val != t2.val) {
36
+ return false;
37
+ }
38
+ q.add(t1.left);
39
+ q.add(t2.right);
40
+ q.add(t1.right);
41
+ q.add(t2.left);
42
+ }
43
+ return true;
44
+ }
45
+ ```
You can’t perform that action at this time.
0 commit comments