var isSymmetric = function (root) {
let levelArr = []
let queue = []
queue.push(root)
while (queue.length) {
let len = queue.length
let levelNodes = []
for (let i = 0; i < len; i++) {
let node = queue.shift()
if (node === null) {
levelNodes.push(null)
} else {
levelNodes.push(node.val)
queue.push(node.left)
queue.push(node.right)
}
}
levelArr.push(levelNodes)
}
console.log(levelArr)
levelArr.shift()
for (let i = 0; i < levelArr.length; i++) {
let nodes = levelArr[i]
while (nodes.length) {
let head = nodes.shift()
let tail = nodes.pop()
if (head !== tail) {
return false
}
}
}
return true
};
var check = function (u, v) {
let queue = []
queue.push(u)
queue.push(v)
while (queue.length) {
u = queue.shift()
v = queue.shift()
if (!u && !v) {
continue
}
if ((!u || !v) || (u.val !== v.val)) {
return false
}
queue.push(u.left)
queue.push(v.right)
queue.push(u.right)
queue.push(v.left)
}
return true
}
var isSymmetric = function (root) {
return check(root, root)
}
var check = (p, q) => {
if(!p && !q) {
return true
}
if(!p || !q) {
return false
}
return p.val === q.val && check(p.left, q.right) && check(p.right, q.left)
}
var isSymmetric = function (root) {
return check(root, root)
}