Skip to content

Commit 3b1e722

Browse files
committed
LC #101
1 parent 14066d8 commit 3b1e722

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

26-LeetCode/06-Symmetric-Tree-LC-101.js

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,58 @@ But the following [1,2,2,null,3,null,3] is not:
1919
2020
Follow up: Solve it both recursively and iteratively.
2121
*/
22+
23+
/**
24+
* Definition for a binary tree node.
25+
* function TreeNode(val) {
26+
* this.val = val;
27+
* this.left = this.right = null;
28+
* }
29+
*/
30+
/**
31+
* @param {TreeNode} root
32+
* @return {boolean}
33+
*/
34+
var isSymmetric = function (root) {
35+
var queue = [];
36+
queue.push(root);
37+
38+
while (queue.length !== 0) {
39+
var len = queue.length;
40+
41+
if (!isLevelSymmetric(queue)) {
42+
return false;
43+
}
44+
45+
for (var i = 0; i < len; i++) {
46+
var node = queue.shift();
47+
48+
if (node !== null) {
49+
queue.push(node.left);
50+
queue.push(node.right);
51+
}
52+
}
53+
}
54+
55+
return true;
56+
};
57+
58+
function isLevelSymmetric(nodes) {
59+
var len = nodes.length;
60+
var beg = 0;
61+
var end = len - 1;
62+
63+
while (beg < end) {
64+
if (
65+
(nodes[beg] === null && nodes[end] === null) ||
66+
(nodes[beg] && nodes[end] && nodes[beg].val === nodes[end].val)
67+
) {
68+
beg++;
69+
end--;
70+
} else {
71+
return false;
72+
}
73+
}
74+
75+
return true;
76+
}

0 commit comments

Comments
 (0)