题目链接:https://leetcode.cn/problems/symmetric-tree/
给定一个二叉树,检查它是否是镜像对称的. :::info 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1
/ \
2 2
/ \ / \
3 4 4 3

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1
/ \
2 2
\ \
3 3 :::

思路

当二叉树对称时,即这颗树的左子树的左节点与右子树的右节点相等,左子树的右节点与右子树的左节点相等。
当树节点为0或1时,直接返回ture;否则对 root节点的左右子树的节点进行判断即可。

  1. var isSymmetric = function(root) {
  2. if (!root) return true;
  3. return isMirrior(root.left, root.right);
  4. };
  5. const isMirrior = function(A, B) {
  6. if (!A && !B) return true;
  7. if (!A|| !B) return false;
  8. return A.val === B.val && isMirrior(A.left, B.right) && isMirrior(A.right, B.left);
  9. }