给你一个二叉树的根节点 root , 检查它是否轴对称。
思路
- 左子树的左孩子 和 右子树的右孩子 是否镜像对称
- 左子树的右孩子 和 右子树的左孩子 是否镜像对称
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var isSymmetric = function(root) { const check = (node1, node2) => { if (!node1 && !node2) { return true } if (!!node1 ^ !!node2) { return false } return node1.val === node2.val && check(node1.left, node2.right) && check(node1.right, node2.left) } return check(root.left, root.right) };
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| var isSymmetric = function(root) { if (!root) { return true } const queue = [root.left, root.right] let curIndex = 0 while (curIndex < queue.length) { const [node1, node2] = [queue[curIndex++], queue[curIndex++]] if (!node1 && !node2) { continue } if (!!node1 ^ !!node2) { return false } if (node1.val !== node2.val) { return false } queue.push(node1.left, node2.right, node1.right, node2.left) } return true };
|