题目描述:

对称二叉树 - 图1

代码实现:

  • 递归法,遍历树,判断左右节点是否相等即可。
  • 时间复杂度:O(n)
  1. /**
  2. * Definition for a binary tree node.
  3. * function TreeNode(val) {
  4. * this.val = val;
  5. * this.left = this.right = null;
  6. * }
  7. */
  8. /**
  9. * @param {TreeNode} root
  10. * @return {boolean}
  11. */
  12. var isSymmetric = function(root) {
  13. if (root === null) return true
  14. return issymmetric(root.left, root.right)
  15. };
  16. var issymmetric = (left, right) => {
  17. if (left === null && right === null) {
  18. return true
  19. }
  20. if (left === null || right === null) {
  21. return false
  22. }
  23. return left.val === right.val && issymmetric(left.left, right.right) && issymmetric(left.right, right.left)
  24. }

对称二叉树 - 图2