BM31 对称的二叉树

题目描述

image

思路分析

使用递归的方法,每次传递镜像的节点进去,compare函数专门用于比对,对不同的条件做不同的处理

代码参考

const isSymmetrical = function (pRoot) {
  // write code here
  if (!pRoot) return true
  const compare = (left, right) => {
    // 如果左子树和右子树都为空 返回true
    if (!left && !right) return true
    // 如果左子树或者右子树有一个为空 返回false
    if (!left || !right) return false
    // 如果左右子树的值不相等 返回false
    if (left.val !== right.val) return false
    // 如果左右子树相等,则继续递归调用,将镜像的节点传递
    return compare(left.left, right.right) && compare(left.right, right.left)
  }
  return compare(pRoot.left, pRoot.right)
}
posted @ 2023-01-02 22:39  含若飞  阅读(12)  评论(0编辑  收藏  举报